Ошибка для моей модели с ManyToManyField в Django
Я работаю над личным проектом, который использует API и имеет аутентификацию пользователей с помощью JWT (но используется в сериализаторе). Я хотел реализовать ManyToManyField
для user
и city
, но это не работает должным образом. Вот расширенная модель, которую я нашел . Я хочу, чтобы UserSearchLocation
хранил City
и при входе в систему видел город, в то время как другие пользователи не увидят его до тех пор, пока не выполнят поиск по тому же городу.
models.py
from django.db import models
from django.contrib.auth.models import User
class UserSearchLocation(models.Model):
id = models.AutoField(primary_key=True, editable=False)
search = models.CharField(max_length=50, null=True)
user = models.ManyToManyField(User, related_name="my_cities", blank=True)
def __str__(self):
return self.search
class City(models.Model):
user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)
city = models.ForeignKey(UserSearchLocation, on_delete=models.SET_NULL, null=True)
id = models.AutoField(primary_key=True, editable=False)
location = models.CharField(max_length=85)
def __str__(self):
return f'{self.location}, {self.country_code}'
def save(self, *args, **kwargs):
self.location = self.location.capitalize()
self.country = self.country.capitalize()
self.country_code = self.country_code.capitalize()
return super(City, self).save(*args, **kwargs)
serializers.py
class ForecastSerializer(serializers.ModelSerializer):
id = serializers.IntegerField()
city = serializers.StringRelatedField()
country_code = serializers.StringRelatedField()
country = serializers.StringRelatedField()
class CitySerializer(serializers.ModelSerializer):
class Meta:
model = City
fields = "__all__"
class UserSearchLocationSerializer(serializers.ModelSerializer):
class Meta:
model = UserSearchLocation
fields = "__all__"
Добавить в localhost/admin/
a CitySearchLocation
работает, но когда нужно добавить City
у меня возникает ошибка:
column base_city.location does not exist
LINE 1: ...ser_id", "base_city"."city_id", "base_city"."id", "base_city...
Ваша ошибка говорит, что city.location
не существует - местоположение является CharField
в вашей модели города - вы уверены, что выполнили миграции и у вас нет конфликтов именования?