【发布时间】:2016-02-23 10:46:12
【问题描述】:
我是 django 的新手,我正在尝试在 django-admin 中实现 django 模型。
这是我的models.py:
class Author(models.Model):
salutation = models.CharField(max_length=10)
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
email = models.EmailField()
def __str__(self):
return self.first_name
class Publisher(models.Model):
name = models.CharField(max_length=30)
address = models.CharField(max_length=100)
website = models.URLField()
def __str__(self):
return ' %s ----> %s' % (self.name, self.address)
class Book(models.Model):
title = models.CharField(max_length=30)
publication_date = models.DateField()
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
def __str__(self):
return self.title
当我通过管理站点创建一本新书时,它应该允许我选择一个或多个作者,但是所有作者都是自动选择的,并且没有删除任何选项的选项。加号表示添加更多作者,但没有表示删除已经相关的作者。
我想拥有我为任何特定书籍选择的特定作者。
【问题讨论】:
-
离题:让你的类名单数和大写。成员 -> 成员。其次,不要创建自己的成员对象,而是使用内置的用户模型。像这样保存密码是一个很大的问题!说真的,不要这样做! ;)
-
字段名称应为小写 Author -> author。甚至 SO 的代码高亮也给了你这个提示。
-
是的.. ik.. 我只是在练习....@allcaps
-
简洁的代码可以帮助人们帮助你。也帮助自己。有一天,你读回你的代码并且不明白哪里出了问题,却发现你没有遵守约定。人们也不太可能提供帮助。你希望他们做什么?坚持同样邋遢的作风?阅读 PEP-8:python.org/dev/peps/pep-0008
-
您可以使用
filter_horizontal来创建更直观的小部件。