Файл моделей:
from django.db import models
from django.conf import settings
class Book(models.Model):
rel_user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, verbose_name="Posted By")
title = models.CharField(max_length=256, verbose_name="Title")
description = models.TextField(verbose_name="Description")
price = models.IntegerField(verbose_name="Price")
state = models.CharField(max_length=256, verbose_name="State")
city = models.CharField(max_length=256, verbose_name="City")
neighbourhood = models.CharField(max_length=256, verbose_name="Neighbourhood")
phone = models.IntegerField(verbose_name="Phone Number")
def __str__(self):
return self.title + f" ({self.rel_user.username})"
Файл форм:
from django.forms import ModelForm
from Books.models import Book
class BookForm(ModelForm):
class Meta:
model = Book
fields = ['title', 'description', 'price', 'state', 'city', 'neighbourhood', 'phone']
Файл просмотров:
from django.shortcuts import render, redirect
from Books.forms import BookForm
from django.contrib import messages
def sell(request):
if request.method == "GET":
form = BookForm()
else:
form = BookForm(request.POST, )
if form.is_valid():
form.save()
messages.success("Successfully added!")
return redirect('sell')
else:
messages.error("Please fill in all the fields.")
return render(request, 'Books/sell.html', {"form": form})
Каждый раз, когда пользователь отправляет форму, Я хочу, чтобы значение ForeignKey было заполнено этой моделью пользователей. Как мне это сделать? Итак, предположим, что пользователь «Джон» заполнил форму. Когда он нажимает кнопку «Отправить», данные, которые он вводит + его пользовательская модель, должны go войти в базу данных для этой записи.