我第一次在这里乱搞Django,我已经设置了一些初步的东西。在管理页面上,我有一个自定义应用程序,其数据库功能正常运行。但是,链接文本不正确(以红色here突出显示)。它应该只是说“食谱”没有第二个“s”。我无法弄清楚为什么会发生这种情况或如何解决它。这是我已经检查过的一些关键文件的代码。
settings.py
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'recipes',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
# 'django.contrib.admindocs',
)
models.py
from django.db import models
class Recipes(models.Model):
name = models.CharField(max_length=100)
ingredients = models.CharField(max_length=1000)
def __unicode__(self):
return self.name + " / " + self.ingredients
admin.py
from recipes.models import Recipes
from django.contrib import admin
admin.site.register(Recipes)
对于记录,此应用程序的文件夹也命名为“recipes”。
如何修复此链接?
答案 0 :(得分:2)
通常的惯例是使用单数名词作为模型名称 - Recipe
而不是Recipes
。
如果您确实希望使用Recipes
作为模型名称,则可以使用模型verbose_name
类上的verbose_name_plural
和Meta
属性自定义显示的名称这里:
https://docs.djangoproject.com/en/dev/ref/models/options/#verbose-name
答案 1 :(得分:1)
您缺少一些Meta信息。默认情况下,verbose_name
具有模型名称,默认情况下verbose_name_plural
将s
附加到verbose_name
。你需要覆盖它。
class Recipes(models.Model):
name = models.CharField(max_length=100)
ingredients = models.CharField(max_length=1000)
def __unicode__(self):
return self.name + " / " + self.ingredients
class Meta:
verbose_name = "Recipe"
verbose_name_plural = "Recipies"