Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django创建的字段_Python_Django - Fatal编程技术网

Python Django创建的字段

Python Django创建的字段,python,django,Python,Django,我有一个带有“已创建”字段的模型。我只希望在创建新对象时存储日期,但在更改模型中的某些其他字段时不更新此字段。在同步之前,我现在有自动_,但我改变了它,就像第一个答案一样。我的问题是当我更新实体时 IntegrityError at /rhyme/15/ null value in column "created" violates not-null constraint DETAIL: Failing row contains (15, LORE, <p>LORE</p&g

我有一个带有“已创建”字段的模型。我只希望在创建新对象时存储日期,但在更改模型中的某些其他字段时不更新此字段。在同步之前,我现在有自动_,但我改变了它,就像第一个答案一样。我的问题是当我更新实体时

IntegrityError at /rhyme/15/
null value in column "created" violates not-null constraint
DETAIL:  Failing row contains (15, LORE, <p>LORE</p>
<p>LORE</p>
<p>LORE</p>
<p>LORE</p>
<p>LORE</p>
<p>L..., null, 1, 1).
更新 视图:

表格:

模板有点奇怪,但json只发送类别、内容和标题:

<form action="{$ formAction $}" role="form" method="post" ng-submit="add($event)">
            {% for field in form.visible_fields %}
                <div class="form-group {% if field.errors %}has-error{% endif %}">
                    {{ field.label_tag }}
                    {{ field|ngmodel }}
                    {% with 'errors.'|add:field.name as error_field %}
                        <div class="text-warning bg bg-danger">
                            {{ field.errors }}{$ {{ error_field }} $}
                        </div>
                    {% endwith %}
                </div>
            {% endfor %}
            {% csrf_token %}
            <div class="row">
                <button ng-click="close($event)" class="btn btn-default col-md-3">Anuluj</button>
                <input class="btn btn-success col-md-offset-1 col-md-8" type="submit" value="Zapisz" />
            </div>
        </form>

但是为什么我的ORM试图将空字段设置为已创建的字段,如何解决此问题?

您如何更新它?能否显示模板文件的一段代码以及引发此错误的相关视图?我认为创建“已创建”字段的一般方法是将默认值设置为“lambda:datetime.datetime.now”。我不知怎的记得,使用“auto\u now\u add”有一些缺点。
form = RhymeForm(data)
form_is_valid = form.is_valid()
if form_is_valid:
    rhyme = form.save(commit=False)
    if self.kwargs.has_key('id'):
        rhyme.id = self.kwargs['id']
    rhyme.author = self.request.user.profile
    rhyme.save()
class RhymeForm(forms.ModelForm):
    title = forms.CharField(
        widget=forms.TextInput(attrs={'class':'form-control'}),
        label=u'Tytuł'
    )
    content = forms.CharField(
        widget=forms.Textarea(attrs={'class':'form-control'}),
        label=u'Treść'
    )
    category = forms.ModelChoiceField(
        queryset=Category.objects.all(),
        label=u'Kategoria',
        empty_label="     ",
        required=False
    )
    class Meta:
        model = Rhyme
        fields = ('title', 'content', 'category')
    def save(self, commit=True):
        rhyme = super(RhymeForm, self).save(commit=False)
        if commit is True:
            rhyme.save()
        return rhyme
<form action="{$ formAction $}" role="form" method="post" ng-submit="add($event)">
            {% for field in form.visible_fields %}
                <div class="form-group {% if field.errors %}has-error{% endif %}">
                    {{ field.label_tag }}
                    {{ field|ngmodel }}
                    {% with 'errors.'|add:field.name as error_field %}
                        <div class="text-warning bg bg-danger">
                            {{ field.errors }}{$ {{ error_field }} $}
                        </div>
                    {% endwith %}
                </div>
            {% endfor %}
            {% csrf_token %}
            <div class="row">
                <button ng-click="close($event)" class="btn btn-default col-md-3">Anuluj</button>
                <input class="btn btn-success col-md-offset-1 col-md-8" type="submit" value="Zapisz" />
            </div>
        </form>
rhyme.created = models.Rhyme.objects.get(pk=self.kwargs['id']).created