Django: Модель не отображается в панели администратора

avatar
user9745220
9 августа 2021 в 01:30
57
0
0

Это модель, которую я хочу показать на панели администратора. Я регистрирую модель через файл admin.py с admin.site.register(Ad). Я дважды пытался перезаписать строку реестра, и появилось исключение, что модель уже зарегистрирована.

class Ad(AdModel):
    plate = models.CharField(max_length=50, unique=True)
    description = models.TextField(max_length=500)
    ad_type = models.CharField(
        max_length=255,
        choices=AdTypes.get_choices(),
        default=AdTypes.OFFERING,
    )
    price = models.PositiveIntegerField(
        default=0,
        help_text='In cents'
    )
    location = models.CharField(
        max_length=255,
        choices=AdLocations.get_choices(),
        default=AdLocations.VILNIUS,
    )
    user = models.ForeignKey(User, on_delete=models.PROTECT)

    approved_date = models.DateField(null=True, blank=True)
    approved_by = models.ForeignKey(
        User, on_delete=models.PROTECT, related_name='approved_by', null=True
    )

Две базовые модели:

class UUIDBaseModel(models.Model):
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    uuid = models.UUIDField(default=uuid.uuid4, editable=False, unique=True)

    class Meta:
        abstract = True

class AdModel(UUIDBaseModel):
    expires_at = models.DateTimeField(null=True)
    is_draft = models.BooleanField(default=False)
    is_active = models.BooleanField(default=False)

    class Meta:
        abstract = True

Это действительно странно, может быть проблема в названии "Реклама"? У меня есть сериализатор для этой модели и все отлично работает, но админка не хочет его отображать.

views.py

class AdCreateViewSet(ModelViewSet, CreateModelMixin):
    serializer_class = AdCreateSerializer
    permission_classes = (AllowAny,)
    filter_backends = [DjangoFilterBackend]
    search_fields = ('plate', 'description', 'user__email')
    queryset = Ad.objects.select_related('user')

    def perform_create(self, serializer):
        user = User.objects.first()
        serializer.save(user=user)  # self.request.user)

serializers.py

class AdCreateSerializer(CustomAdSerializer):
    class Meta:
        model = Ad
        exclude = ['expires_at']
        read_only_fields = ('user',)

enter image description here

Источник
Brian Destura
9 августа 2021 в 02:05
1

Вы используете суперпользователя/администратора? Возможно, у вас нет разрешений

JPG
9 августа 2021 в 03:21
0

Вы добавили свое приложение в настройки INSTALLED_APPS?

incrediblegiant
9 августа 2021 в 03:38
0

Вы запускали syncdb после того, как добавили этот класс в models.py?

Amin
9 августа 2021 в 07:18
0

Можешь поделиться своим admin.py? а какая у вас админка на главной странице? на этом фото вы в пользовательском разделе...

user9745220
9 августа 2021 в 08:55
0

Привет всем, я все настроил, но я думаю, что это могут быть все разрешения, как и где я должен их добавить? @бдбд

Brian Destura
9 августа 2021 в 10:13
0

Попробуйте сначала увидеть, если вы видите это с суперпользователем

user9745220
15 августа 2021 в 07:47
0

Я уже пробую это с суперпользователем @bdbd

Ответы (0)