Я пытаюсь создать некоторые конечные точки службы, которые создают объекты на основе данных, отправленных в 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". Если я заберу userid, я получу то же самое для sermonid, сказав, что это должен быть экземпляр Contentdownloadtable.
Почему это не позволяет мне создавать объекты с внешними ключами.
URLS.py:
url(r'^service/sermonhistory/add/', service.sermonHistoryAdd, name='sermonHistoryAdd'),
Такая же проблема. Я могу удалить часть userid вместе, и он делает то же самое с «sermonid» из модели Contentdownloadtable. –
@TrentBrown вам нужно создать экземпляр этого 'Countdownloadtable' из' sermonid = request.GET ['sermonid'] 'и передать экземпляр в' timeListened (....., sermomid = sermonidIntace) 'также – pitaside
Я узнал, как это сделать, не создавая экземпляр. Мне любопытно, как создать экземпляр. Я видел, что сделал так много в джанго, ничего не делая с ними. –