Я использую Manager в модели на основе логического поля для фильтрации объектов, отображаемых на сайте, при этом все объекты в админке отображаются без фильтрации.Идея состоит в том, что пользователи отправляют местоположения, но я не хочу, чтобы они отображались на сайте, пока они не будут проверены как действительные местоположения на основе моих критериев.
models.py
class LocationManager(models.GeoManager):
def get_query_set(self):
return super(LocationManager, self).get_query_set().filter(verified=True)
class Location(models.Model):
verified = models.BooleanField(default=False)
objects = LocationManager()
admin_objects = models.Manager()
admin.py
class LocationAdmin(admin.OSMGeoAdmin):
def queryset(self, request):
qs = self.model.admin_objects.get_query_set()
return qs
admin.site.register(Location, LocationAdmin)
В админке, когда я захожу в запись и проверяю проверенное Boolean на True и нажимаю save, я получаю IntegrityError:
duplicate key value violates unique constraint "localshare_location_pkey"
Это работало в другом проекте, когда по умолчанию было True, и я отфильтровал False.Я использую Postgres.Кто-нибудь знает, почему это не работает, или есть предложения по лучшему способу достижения этого?