我试图创建一个视图,用户可以通过模板中的表单编辑DB记录。我搜索了很多网页(以及Django文档),在那里他们教如何创建这些视图,但是他们总是使用Django为每个模型生成的“id”。在这个特定的模型中,我必须使用AutoField覆盖“id”。有没有办法用这个AutoField作为Django记录的“id”?在
这是我的完整模型:
class T031003 (models.Model):
C003IDCD = AutoField(primary_key=True)
C003INST = models.IntegerField(unique=True) #usar AutoSlug
C003TPCD = models.CharField(max_length=1)
C003CHCD = models.CharField(max_length=14)
C003MTR = models.CharField(max_length=30, blank=True, null=True)
C003CTCD = models.CharField(max_length=3)
C003RZSC = models.CharField(max_length=60, blank=True, null=True)
C003EML = models.EmailField(max_length = 254, blank=True, null=True)
C003LOGA = models.CharField(max_length=20)
C003LOGB = models.DateTimeField()
C003LOGD = models.CharField(max_length=15, blank=True, null=True)
C003LOGF = models.CharField(max_length=20, blank=True, null=True)
def __unicode__(self):
return '%s' % self.C003MTR
class T031003Form(ModelForm):
class Meta:
model = T031003
ordering = ["-C003MTR"]
exclude = ('C003LOGA','C003LOGB','C003LOGD','C003LOGE','C003LOGF')
这是我试图做的视图,但是它给我错误“No T031003 matches the given query.”没错,因为表中没有“id”:
^{pr2}$非常感谢任何帮助!在
多亏了朋友的帮忙,我可以帮上忙。以下是视图:
因此,有了表单集,您可以很好地工作,而不必担心。希望它能帮助其他人解决同样的问题。在
如果模型有一个AutoField(一个自动递增的主键),那么在您第一次调用save()时,自动递增的值将被计算并保存为对象的属性:
在调用save()之前无法判断ID的值,因为该值是由数据库计算的,而不是由Django计算的。在
参考号:https://docs.djangoproject.com/en/dev/ref/models/instances/?from=olddocs
相关问题 更多 >
编程相关推荐