【发布时间】:2016-04-09 15:16:44
【问题描述】:
我正在尝试创建一些服务端点,这些端点根据发送到 URL 的数据创建对象。目前,我收到错误消息,说我的模型中的各种项目具有外键,它们没有启动实例。我怎样才能启动一个实例或让它工作。
Model.py
class timeListened(models.Model):
listenedeventid = models.AutoField(db_column='listenedEventID', max_length=10,primary_key=True)
userid = models.ForeignKey(AuthUser,db_column='userID',blank=False,null=False,max_length=255,default=get_current_user,editable=True)
sermonid = models.ForeignKey(Contentdownloadtable,db_column='sermonID',unique=True,verbose_name='Sermon Name')
dateListened = models.DateTimeField(db_column='dateTimeListened',auto_now=True)
class Meta:
managed = True
db_table = 'timeListened'
verbose_name = 'Viewed Sermon'
verbose_name_plural = 'Viewed Sermons'
app_label = 'web'
service.py
def sermonHistoryAdd(request):
if request.user.is_authenticated():
if request.GET.get("sermonid","") == "":
results = 'No Sermon ID passed'
else:
sermonid = request.GET.get("sermonid","")
newHistory = timeListened(sermonid=sermonid,dateListened=datetime.datetime.now(),userid=request.user.id)
newHistory.save()
results = 'test'
else:
results = 'Not Logged In.'
return HttpResponse(results)
我得到的错误信息是:
无法分配“1”:“timeListened.userid”必须是“AuthUser”实例。 如果我拿走 userid,我会得到同样的 sermonid —— 说它必须是一个“Contentdownloadtable”实例。
为什么不让我创建具有外键的对象。
URLS.py:
url(r'^service/sermonhistory/add/', service.sermonHistoryAdd, name='sermonHistoryAdd'),
【问题讨论】: