0

現在、Django-book チュートリアルで Django を学習していますが、エラーが発生しました。第5章では、これをpythonインタープリターに入力することになっています

    >>> p1 = Publisher.objects.create(name='Apress', 
    ... address='2855 Telegraph Avenue', 
    ... city='Berkeley', state_province='CA', country='U.S.A.', 
    ... website='http://www.apress.com/') 
    >>> p2 = Publisher.objects.create(name="O'Reilly", 
    ... address='10 Fawcett St.', city='Cambridge', 
    ... state_province='MA', country='U.S.A.', 
    ... website='http://www.oreilly.com/') 
    >>> publisher_list = Publisher.objects.all() 
    >>> publisher_list 

チュートリアルによると、次の出力が得られるはずです

    [<Publisher: Publisher object>, <Publisher: Publisher object>] 

ただし、同じ出力が得られますが、4つのオブジェクトがあります!!

    [<Publisher: Publisher object>, <Publisher: Publisher object>, <Publisher: Publisher object>, <Publisher: Publisher object>] 

また、models.py を django.db インポート モデルからこれに変更する (Unicode 関数を追加する) ことになっています。

    class Publisher(models.Model): 
    name = models.CharField(max_length=30) 
    address = models.CharField(max_length=50) 
    city = models.CharField(max_length=60) 
    state_province = models.CharField(max_length=30) 
    country = models.CharField(max_length=50) 
    website = models.URLField() 

    def __unicode__(self): 
            return self.name 

    class Author(models.Model): 
    first_name = models.CharField(max_length=30) 
    last_name = models.CharField(max_length=40) 
    email = models.EmailField() 

    def __unicode__(self): 
            return u'%s %s' % (self.first_name, self.last_name) 

    class Book(models.Model): 
    title = models.CharField(max_length=100) 
    authors = models.ManyToManyField(Author) 
    publisher = models.ForeignKey(Publisher) 
    publication_date = models.DateField() 

    def __unicode__(self): 
            return self.title 

オブジェクトを表示するため。ここにチュートリアルによる出力があります

    >>> from books.models import Publisher 
    >>> publisher_list = Publisher.objects.all() 
    >>> publisher_list 
    [<Publisher: Apress>, <Publisher: O'Reilly>] 

しかし、私はまだ得ています

    [<Publisher: Publisher object>, <Publisher: Publisher object>, <Publisher: Publisher object>, <Publisher: Publisher object>] 

より多くのオブジェクトを取得している理由と、ユニコードの出力を表示できない理由がわかりません...

ご協力ありがとうございました!

**http://django-book.readthedocs.org/en/latest/chapter05.html は特定の章へのリンクです!!!

4

2 に答える 2

2

このサンプルを試してください:

models.py

class Debt(models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=50,
        help_text="Name to identify your debt.")
    due_day = models.PositiveSmallIntegerField(
        help_text="Day of the month payment is due.")

    def __unicode__(self):
        return "{0}".format(self.user)

ビュー.py

def debt(request):

return render(request, 'debt.html', {
    'debts': Debt.objects.filter(),
}) 

負債.html

 {% for debt in debts %}
     {{debt.user}} - {{debt.name}} <br/>
 {% endfor %}  
于 2013-01-26T07:16:14.870 に答える
0

これは、コードを 2 回実行したためです。値はすでにデータベースに保存されています。もう一度実行すると、さらに 2 つの値が保存され、それらは重複しています。

于 2013-01-26T07:25:29.293 に答える