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 объект был бесполезен.

Вернуться на верх