我試圖創建一些服務端點,這些端點基於發送到URL中的數據創建對象。目前,我收到的錯誤是說我的模型中有多個外鍵的項目,它們沒有啓動實例。我怎樣才能啓動一個實例或讓它工作。Django使用外鍵創建沒有窗體的對象
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」 實例。 如果我拿走用戶標識,我會得到同樣的東西 - 說它必須是一個「Contentdownloadtable」實例。
它爲什麼不讓我創建具有外鍵的對象。
URLS.py:
url(r'^service/sermonhistory/add/', service.sermonHistoryAdd, name='sermonHistoryAdd'),
同樣的問題。我可以將它的userid部分全部取出,並且它與來自Contentdownloadtable模型的「sermonid」執行相同的操作。 –
@TrentBrown您必須從sermonid = request.GET ['sermonid']'創建'Countdownloadtable'的實例,並將實例傳遞給'timeListened(.....,sermomid = sermonidIntace)'也 – pitaside
我發現如何在不創建實例的情況下做到這一點。我很好奇你將如何創建一個實例。我已經看到在django中做了這麼多事,卻沒有對它們做任何事情。 –