python - Django:模型没有出现在管理面板上
问题描述
这是我想在管理面板上显示的模型。我正在通过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',)
解决方案
推荐阅读
- reactjs - React native - 反应导航中的 redux
- python-3.x - 将多个条件与数据框 filter() 函数一起使用
- swift - Swift 泛型:无法转换“NSFetchRequest”类型的值
' 到预期的参数类型 'NSFetchRequest<_>' - r - 有条件地更新行然后分组
- python - 比较单词列表,删除相似单词并添加到新字符串中
- git - Sitecore 的最佳 Git 工作流程
- matlab - matlab:指定要索引的维度
- android - 避免禁用证书固定 Android
- c# - ASP.NET Core 2.1 Razor 页面“请稍候”模式和验证
- makefile - 构建文件夹中的 `make -j `nproc` 给出:`make: *** 没有指定目标,也没有找到 makefile。停止。`在 ubuntu18.04