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