我尝试创建一些服务端点,根据发送到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'),
答案 0 :(得分:0)
为什么不尝试使用
userId = model.ForeignKey(User, .....)
并使用
newHistory = timeListened(sermonid=sermonid,dateListened=datetime.datetime.now(),userid=request.user)
newHistory.save()
答案 1 :(得分:0)
除了我不想为具有外键的对象加载实例外,一切都很好 - 我只需要将_id添加到外键对象。
newHistory = timeListened(sermonid_id=sermonid,dateListened=datetime.datetime.now(),username_id=username)