【发布时间】:2020-08-24 10:53:09
【问题描述】:
我有这个模型:
class Venue(models.Model):
venue_name = models.CharField(max_length=50)
venue_city = models.CharField(max_length=50)
我有一个表单,用户可以在其中输入场地名称和城市。我想检查数据库中是否已经存在一条记录,并且两个字段都已包含在同一条记录中。例如,不同城市可能有相同的场地名称。
我在 forms.py 中添加了支票:
class VenueForm(forms.ModelForm):
class Meta:
model = Venue
fields = ['venue_name', 'venue_city', 'venue_country']
def save(self, commit=True):
venue = super(VenueForm, self).save(commit=False)
venue_name = self.cleaned_data['venue_name']
venue_city = self.cleaned_data['venue_city']
if Venue.objects.filter(venue_city=self.cleaned_data['venue_city']).exists() and Venue.objects.filter(venue_name=self.cleaned_data['venue_name']).exists(): # I know this doesn't work: it's as far as I can get.
logger.error(venue_name + ' already exists')
if commit:
venue.save()
return venue
最后是我的 view.py:
def venue_add_view(request):
form_venue = VenueForm(request.POST or None)
if form_venue.is_valid():
form_venue.save()
context = {
'form_venue': form_venue,
}
return render(request, "venue-add.html", context)
现在它成功检查名称或城市是否已经存在。我想要做的是询问数据库它们是否存在于同一条记录中。我该怎么做?
【问题讨论】:
标签: django django-forms django-views