【发布时间】:2020-04-25 06:38:49
【问题描述】:
我有一个 ModelForm,其中排除了 selected_season 字段。模型如下所示(显示相关部分):
class Registration(models.Model):
student_name = models.CharField(max_length=50)
selected_season = models.ForeignKey(Season, on_delete=models.CASCADE)
...
在保存表单之前,我尝试在以下位置添加该字段:
if form.is_valid():
form.save(commit=False)
form.selected_season = '21'
form.save()
但它显示null value in column "selected_season_id" violates not-null constraint
我添加了 21,因为我的季节表中有 2 个对象,“21”和“22”。我该如何解决这个问题?
编辑
季节模型如下所示:
class Season(models.Model):
season = models.CharField(max_length=2, primary_key=True)
subject = models.ManyToManyField(Subject)
running = models.BooleanField(default=False)
主键不是id,而是season 属性。在我不得不修改普拉万的答案之后:
if form.is_valid():
form.save(commit=False)
season=Season.objects.get(season=21)
form.selected_season = season
form.save()
但问题仍然存在。
【问题讨论】:
-
'21'是一个字符串,需要给form.selected_season赋值一个Season对象 -
你能告诉我该怎么做吗?
标签: django django-models django-forms django-views