Django автоматически добавляет внешний ключ в форму - PullRequest
0 голосов
/ 30 октября 2018

У меня есть следующие форма и модель:

class Book(models.Model):

    name = models.CharField(max_length=128, null=True, blank=True)
    author = models.CharField(max_length=128, null=True, blank=True)
    borrower = models.ForeignKey('core.User')
class BookForm(forms.ModelForm)
    class Meta:
        model = Book
        fields = ("name", "author", "borrower")
@login_required
def private(request):
    if request.method == 'POST':
        form = BookForm(request.POST)
        if form.is_valid():
            book = form.save(commit=False)
            book.save()
    else:
        form = BookForm()
    return render(request, 'borrow.html', {'form': form, })

На моем сайте пользователь может одолжить книгу. У каждой книги есть свой заемщик. Проблема в том, что поле «заемщик» переведено в выбор HTML, я хотел бы скрыть его и установить для текущего вошедшего в систему пользователя.
Буду признателен за помощь в реализации этого

1 Ответ

0 голосов
/ 30 октября 2018

Удалить заемщика из списка fields и установить его на ваш взгляд:

if form.is_valid():
    book = form.save(commit=False)
    book.borrower = request.user
    book.save()
...