当我在admin.py中包含'user_id','user'
时,那么......
Traceback说 -
但是......如果我将'user_id','user'
从admin.py中删除,那么......
admin.py
from timeslip.models import Timeslip
from django.contrib import admin
class TimeslipAdmin(admin.ModelAdmin):
fields = ['user_id','user','day','hours_as_sec','part_of_day','drove','gas_money','notes']
admin.site.register(Timeslip, TimeslipAdmin)
models.py
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class Timeslip(models.Model):
user=models.ForeignKey(User)
day = models.DateField()
hours_as_sec = models.PositiveIntegerField()
part_of_day = models.CharField(max_length=16,choices=PART_O_DAY)
drove = models.BooleanField(default=False)
gas_money = models.DecimalField(max_digits=5,decimal_places=2)
notes = models.TextField()
class UserProfile(models.Model):
user = models.ForeignKey(User)
url = models.URLField("Website", blank=True)
position = models.CharField(max_length=50, blank=True)
User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u)[0])
如此克服这一点我很无能为力。我来自PHP背景,Python和他妈的新手Django的。
答案 0 :(得分:2)
user_id
和user
是多余的。 Django自动命名数据库中的user
字段user_id
(因为它保存了它指向的User实例的id。)
将您的admin.py更改为以下内容,它应该有效:
class TimeslipAdmin(admin.ModelAdmin):
fields = ['user','day','hours_as_sec','part_of_day','drove','gas_money','notes']
此外,您还包含管理员中的所有字段,因此您实际上不需要指定字段。这也可行:
class TimeslipAdmin(admin.ModelAdmin):
pass
答案 1 :(得分:0)
但是......如果我将'user_id','user'从admin.py中删除,那么......
您还没有'user_id'字段。所以只删除这个字段,我认为一切都会正常工作。