Django не автозаполняет внешний ключ текущего пользователя
Я вставляю записи в свою базу данных с лицевой стороны, но внешний ключ текущего зарегистрированного пользователя не заполняется. Он вводится как null.
вот моя модель:
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class WordsAndPhrases (models.Model):
word_or_phrase = models.CharField(max_length=20000)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
added_by = models.ForeignKey(User, null=True, on_delete=models.DO_NOTHING)
def __str__(self):
return self.word_or_phrase
вот мой фрагмент кода views.py.
def upload(request):
if request.method == 'POST':
wordOrPhrase = request.POST['word-or-phrase']
currentUser = request.user
print(currentUser)
newEntry = WordsAndPhrases(word_or_phrase = wordOrPhrase)
addedBy = WordsAndPhrases(added_by = currentUser)
newEntry.save()
return render(request, 'display_words_phrases_app/upload.html')
Заранее спасибо.
Вам необходимо определить ключ id в вашей модели
id = models.AutoField(primary_key=True, )
Вы создаете два объекта ввода. Когда вы создаете новый объект, вы должны вставить оба word_or_phrase
и added_by
следующим образом:
def upload(request):
if request.method == 'POST':
wordOrPhrase = request.POST['word-or-phrase']
currentUser = request.user
print(currentUser)
newEntry = WordsAndPhrases(word_or_phrase = wordOrPhrase, added_by = currentUser)
newEntry.save()
return render(request, 'display_words_phrases_app/upload.html')
Ваш addedBy
объект был бесполезен.