Автоматическое сохранение имени пользователя user_id как иностранного, используя forrm.py в django - PullRequest
0 голосов
/ 03 апреля 2020

`как отправить форму, которая автоматически принимает user_id текущего активного пользователя как Foreignkey с файлом form.py в django

form.py:

from django import forms 
from .models import BBB
from django.contrib.auth.models import User

class AdminBModelForm(forms.ModelForm):
    class Meta:
    model = BBB
    fields = ['id','content','user_id']

models.py :

from django.db import models
from django.contrib.auth.models import User
class BBB(models.Model):
    user_id = models.ForeignKey(User, related_name='bs', 
    on_delete=models.CASCADE)
    content = models.TextField()

views.py:

from django.shortcuts import render,redirect
from .models import BBB
from . forms import AdminBModelForm
from django.http import HttpResponse 
# Create your views here.
def index(request): 
    if request.method == 'POST': 
        form = AdminBModelForm(request.POST, request.FILES) 
        if form.is_valid(): 
            form.save() 
            return redirect('success') 
    else: 
        form = AdminBModelForm() 
    return render(request, 'index.html', {'form' : form}) 

def success(request): 
    return HttpResponse('successfully uploaded') \

index. html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form method = "post" enctype="multipart/form-data"> 
        {% csrf_token %} 
        {{ form.content }} 
        <button type="submit">Upload</button> 
    </form> 
</body>
</html>

Эта форма занимает только одно содержимое поля и автоматически сохраняет идентификатор входа пользователя

1 Ответ

0 голосов
/ 04 апреля 2020

До form.save(), сделайте form.instance.user_id = request.user.

В качестве отступления, было бы неплохо переименовать это поле в user вместо user_id.

...