一、admin 显示外键的其他字段
#models
class Category(models.Model): name = models.CharField(max_length=64,unique=True) admins = models.ForeignKey(User,blank=True,on_delete=models.CASCADE) class Meta: verbose_name = '分类' verbose_name_plural = '分类'
class Comment(models.Model):
article = models.ForeignKey(Article,verbose_name=u"所属文章",on_delete=models.CASCADE)
user = models.ForeignKey(User,on_delete=models.CASCADE)
comment = models.TextField(blank=True,null=True)# 问题来了? 点赞不用内容,但是评论要内容啊!!!
date = models.DateTimeField(auto_now_add=True)
def clean(self):
if len(self.comment) ==0:
raise ValidationError(u'评论内容不能为空')
def __str__(self):
return self.comment
class Meta:
verbose_name = '评论'
verbose_name_plural = '评论'
# admin.py
class CommentAdmin(admin.ModelAdmin):
list_display = ('article','comment','user','date') user 如果是外键的话显示user的ID
class CategoryAdmin(admin.ModelAdmin): list_display = ('name','admins') 这里admin 显示外键的username字段 def admins(self,obj): return obj.admins.username
二、序列化显示外键其他字段
我们使用source
class CommentSerializer(serializers.ModelSerializer): # username = serializers.CharField(source='user.username') 显示user外键的username class Meta: model = Comment fields = ('username')
三。上传
head_img = models.ImageField(upload_to="uploads")