0

「djangobyexample」チュートリアルのこの部分をフォローしています。に移動し/admin/todo/datetime/てクリックするAdd date timeと、次のエラーが発生します。

Exception Type: Exception at /admin/todo/datetime/add/
Exception Value: <class 'todo.models.Item'> has no ForeignKey to <class 'todo.models.DateTime'>

私のコードはほとんど同じです(インポートステートメントが含まれていることを除いて):

from django.db import models
from django.contrib import admin

class DateTime(models.Model):
    datetime = models.DateTimeField(auto_now_add = True)
    def __unicode__(self):
       return unicode(self.datetime)

class Item(models.Model):
    name = models.CharField(max_length = 60)
    created = models.DateTimeField(auto_now_add = True)
    priority = models.IntegerField(default = 0)
    difficulty = models.IntegerField(default = 0)
    done = models.BooleanField(default = False)

class ItemAdmin(admin.ModelAdmin):
    list_display = ["name", "priority", "difficulty", "created", "done"]
    search_fields = ["name"]

class ItemInline(admin.TabularInline):
    model = Item

class DateAdmin(admin.ModelAdmin):
    list_display = ["datetime"]
    inlines = [ItemInline]

admin.site.register(Item, ItemAdmin)
admin.site.register(DateTime, DateAdmin)

同様のSOスレッドを調べましたが、ここで何が問題になっているのかわかりません。(ところで、私はツロリアルで使用されているdjango 1.3間に使用します)django 1.2

4

2 に答える 2

3

created = models.DateTimeField(auto_now_add = True)モデル内でで置き換える必要がcreated = models.ForeignKey(DateTime)ありますItem

于 2012-07-19T15:53:13.283 に答える
3

モデルがチュートリアルのモデルと一致しません。あなたItem.createdDateTimeFieldしばらくの間、彼らItem.createdはモデルForeignKeyになります。DateTime

# From http://lightbird.net/dbe/todo_list.html#adding-multiple-items

class DateTime(models.Model):
    datetime = models.DateTimeField(auto_now_add=True)
    def __unicode__(self):
        return unicode(self.datetime)

class Item(models.Model):
    name = models.CharField(max_length=60)
    created = models.ForeignKey(DateTime)
    priority = models.IntegerField(default=0)
    difficulty = models.IntegerField(default=0)
    done = models.BooleanField(default=False)
于 2012-07-19T15:53:51.123 に答える