Сохранить данные формы в базу данных - PullRequest
0 голосов
/ 30 марта 2019

Я новичок в Django, и мне действительно нужна помощь,

Я не знаю, как сохранить данные формы в базе данных.У меня проблема с views.py

Я буду знать идентификатор пользователя, который заполнил форму, добавленную в поле внешнего ключа.

Если есть какая-либо ссылка или пример, которые мне помогают, я ценю вас.

# views.py

@login_required(login_url="home")

def melk_new(request):

form = MelkForm()

???    

return render(request, 'melk_new.html',{'form': form})



# models.py

class Melk(models.Model):

category = models.CharField(max_length=50)

city = models.CharField(max_length=100)

person = models.ForeignKey('CustomUser', on\_delete=models.CASCADE)

def \_\_str\_\_(self):
return self.category    

class CustomUser(AbstractUser):

def __str__(self):

return self.email   

---------------------------------------------------------------------------

# forms.py

class MelkForm(forms.ModelForm):

class Meta:

model = Melk

fields = ('category', 'city')    

class CustomUserCreationForm(UserCreationForm):

class Meta(UserCreationForm):

model = CustomUser

fields = ('username', 'email')

Ответы [ 2 ]

0 голосов
/ 05 апреля 2019
@login_required(login_url="home")
 def melk_new(request):
    form = MelkForm(request.POST)
    if form.is_valid():
        instance = form.save(commit=False)
        instance.user_id = request.user.id
        instance.save()
    return render(request,'melk_new.html', { 'form': form})
0 голосов
/ 31 марта 2019

Чтобы получить зарегистрированного пользователя, вы найдете его в объекте request.user.но прежде чем предположить, что в данный момент зарегистрирован пользователь, вам необходимо проверить его, чтобы у вас было 2 широко известных параметра:

  1. request.user.is_authenticated()
  2. @login_required()Декоратор используется, если вы from django.contrib.auth.decorators import login_required

    if request.user.is_authenticated():
        Car.objects.create(model_id=some_id, person=request.user)
    

Примечание:

@login_required() добавляется над функцией

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...