0

私はpythonとdjangoを始めています。sqlite3にデータを追加するページを作って「追加」したい。

1. #my admin.py file
2. from django.contrib import admin
3. from jobs.models import Location
4. from jobs.models import Job
5. 
6. class JobAdmin(admin.ModelAdmin):
7.     fieldsets = [(None, {'fields': ['pub_date']},
8.                         {'fields': ['job_title']},
9.                         {'fields': ['job_description']},)
10. #       ('More info',  {'fields': ['location']},)
12.    ]
13. 
14. class LocationAdmin(admin.ModelAdmin):
15.     list_display = ('city', 'state', 'country')
16. 
17. admin.site.register(Job,JobAdmin)
18. admin.site.register(Location, LocationAdmin)

10 行目のコメントを外すと、エラーが発生します。

Exception Type:      TypeError
Exception Value:     'tuple' object is not callable
Exception Location:  /home/python/djproject/jobs/admin.py in JobAdmin, line 10

上記のように10行目をコメントすると、エラーが発生します。

Exception Type:     ImproperlyConfigured
Exception Value:    'JobAdmin.fieldsets[0]' does not have exactly two elements.
Exception Location: /usr/lib/python2.6/site-packages/django/contrib/admin/validation.py in validate_base, line 291

フィールド 'location' は外部キーです。データベースのジョブのフィールドにデータがありません。データベースにデータを挿入する追加ページを作成したいと考えています。私のmodels.pyは次のとおりです。

#my models.py
from django.db import models

class Location(models.Model):
    city = models.CharField(max_length=50)
    state = models.CharField(max_length=50, null=True, blank=True)
    country = models.CharField(max_length=50)

    def __str__(self):
        if self.state:
            return "%s, %s, %s" % (self.city, self.state, self.country)
        else:
            return "%s, %s" % (self.city, self.country)

class Job(models.Model):
    pub_date = models.DateField()
    job_title = models.CharField(max_length=50)
    job_description = models.TextField()
    location = models.ForeignKey(Location)

    def __str__(self):
        return "%s (%s)" % (self.job_title, self.location)

どうすればいいのかわからないのですが、参考文献やアドバイスを教えてもらえますか?あなたの時間のためにthx。

4

2 に答える 2

1

9行目の末尾の「,」(カンマ)が抜けています。

于 2012-06-25T04:06:06.737 に答える
1

行のコメントを解除する必要がある場合は、行の前にコンマ,を追加する必要があります。

class JobAdmin(admin.ModelAdmin):
 fieldsets = [(None, {'fields': ['pub_date']},
                     {'fields': ['job_title']},
                     {'fields': ['job_description']},),
    ('More info',  {'fields': ['location']},)
]
于 2012-06-25T04:01:51.697 に答える