相关问题:Test if Django ModelForm has instance
根据上面的问题和答案,我们可以检查一个模型表格是否有 ArrayList<String> abc = new DemoAsynch().execute().get();
实例,因为hasattr(form.instance, 'pk')
必须有instance
。
我误解了相关的问题。它说
尝试检查
pk
是否为form.instance.pk
。
但在我的情况下,模型的主键被自定义为:
None
模型形式:
class MyModel(Model):
myid = models.CharField(max_length=10, primary_key=True)
...
在class MyModelForm(ModelForm):
class Meta:
model = MyModel
之后 在实例上具有 pk
属性:
is_valid()
我的问题是: 在这种情况下,如何检查是否使用现有实例设置了模型? 或者,如何检查模型的模式是否为&#34;在现有条目上进行编辑&#34; /&#34;我们的DB&#34;
的新条目答案 0 :(得分:1)
如果您的模型具有主键列,则该模型的?- substitution(a+b+[c,d,a], a, 2, R).
R = 2+b+[c, d, 2] ;
false.
属性将始终存在,并且是该字段的别名。
在您的情况下,您不想检查pk
是否有名为form.instance
的属性(pk
行)。相反,您必须检查hasattr
的属性pk
是否为空:
form.instance
如果它是一个尚未保存的新模型,则data = {'myid': '123'}
form = MyModelForm(data=data, instance=None)
form.is_valid()
if form.instance.pk:
print('This has a pk! It was saved before!')
else:
print('This has no pk! It was never saved!')
字段的值将为form.instance.pk
(空字符串),其在if语句中的计算结果为u''
,这就是你做到的。