У меня есть эта модель:
class Venue(models.Model):
venue_name = models.CharField(max_length=50)
venue_city = models.CharField(max_length=50)
, и у меня есть форма, в которой пользователи вводят название места проведения и город. Я хотел бы проверить, существует ли уже запись в базе данных, причем оба поля уже заняты в одной записи. Например, в разных городах может быть одно и то же название места проведения.
Я добавил чек в мои формы.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)
Теперь он успешно проверяет, существует ли уже название или город. Я хочу спросить базу данных, существуют ли они в одной записи. Как я могу это сделать?