当我在harvest fromYearSet
中添加新年份时,但当年份存在时,它不会中断if语句。
我尝试使用exists()
,但失败了
models.py
class YearSet(models.Model):
year = models.CharField(max_length=4, default='')
class Meta:
ordering = ["-year"]
class Harvest(models.Model):
User_id = models.ForeignKey(User, on_delete=models.CASCADE,default='')
product = models.IntegerField(default='')
years = models.ForeignKey(YearSet, on_delete=models.CASCADE, default='2017')
Plant_id = models.ForeignKey(Plant, on_delete=models.CASCADE)
view.py
def CreateHarvest(request, Plant_id, Harvest_id, id):
if request.method == 'POST':
harvestform = addHarvest(request.POST)
if harvestform.is_valid():
createharvest = harvestform.save(commit=False)
createharvest.user = request.user
if Harvest.objects.exists():
createharvest.save()
return redirect("../../")
else:
return render(request, "Farmer/test.html")
else:
harvestform = addHarvest()
harvestcreateform = {
'harvestform': harvestform,
}
return render(request, 'Farmer/CreateHarvest.html', harvestcreateform)
forms.py
class addHarvest(forms.ModelForm):
class Meta:
model = Harvest
fields = [
'product',
'years'
]
如果Harvest有“2012”,那么exists()
不会得到“2012”的对象
我认为您不希望在存在年份记录时创建
Harvest
,在这种情况下,您需要检查是否存在具有指定年份的收获实例if Harvest.objects.filter(years=int(request.POST['years']).exists()
将返回True
,如果有与表单上年份相同的收获记录相关问题 更多 >
编程相关推荐