[英]How to Change OneToOne model Field Default Message in Django Admin?
I have suppose following model.我假设跟随 model。
class Replied(BaseModel):
reply = models.OneToOneField(Review, on_delete=models.CASCADE)
show_reply = models.BooleanField(default=False)
replied_by = models.ForeignKey(User, on_delete=models.CASCADE)
class Meta:
verbose_name = 'Reply'
verbose_name_plural = 'Replies'
def __str__(self):
return self.content
When I tried adding more than reply to certain reply the error message by default given by Django Admin is as follow.当我尝试添加多个回复时,Django 管理员默认给出的错误消息如下。 Reply with this Reply already exists.
I want certain message like this.我想要这样的某些信息。
Reply to this review already exists.对此评论的回复已存在。
How can I do that?我怎样才能做到这一点? In my opinion it should be done in admin so here is my admin.py code我认为应该在管理员中完成所以这是我的 admin.py 代码
@admin.register(Replied)
class RepliedAdmin(ModelAdmin):
list_display = (
'replied_by',
'created_at')
list_filter = ('replied_by',)
list_display_links = ('replied_by',)
You can override the error_messages=…
parameter [Django-doc] for the unique
error message:您可以覆盖error_messages=…
参数 [Django-doc]以获得unique
错误消息:
class Replied(BaseModel):
reply = models.OneToOneField(
Review,
on_delete=models.CASCADE,
error_messages={'unique': 'Reply to this review already exists.'}
)
show_reply = models.BooleanField(default=False)
replied_by = models.ForeignKey(User, on_delete=models.CASCADE)
class Meta:
verbose_name = 'Reply'
verbose_name_plural = 'Replies'
def __str__(self):
return self.content
That being said, the default message is:话虽如此,默认消息是:
,code>'unique': '%(model_name)s with this %(field_label)s already exists.'
so by setting the verbose_name=…
[Django-doc] , this issue is also resolved, and all other error messages will be adapted:所以通过设置verbose_name=…
[Django-doc] ,这个问题也得到了解决,并且所有其他错误消息都将被调整:
class Replied(BaseModel):
reply = models.OneToOneField(
Review,
on_delete=models.CASCADE,
verbose_name='review'
)
show_reply = models.BooleanField(default=False)
replied_by = models.ForeignKey(User, on_delete=models.CASCADE)
class Meta:
verbose_name = 'Reply'
verbose_name_plural = 'Replies'
def __str__(self):
return self.content
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.