简体   繁体   English

保存表单时如何在模型字段中保存当前登录的用户名?

[英]How to save currently logged in user username in model's field while saving a form?

I am using CreateView. 我正在使用CreateView。

view.py file view.py文件

class AdvertismentCreate(LoginRequiredMixin,CreateView):
    model = Advertisment  
    form_class = AdvertismentForm

Advertisment_form.html file Advertisment_form.html文件

{% extends 'app/layout.html' %}
{%load crispy_forms_tags %}

{% block content %}
     <form method="post">
         {% csrf_token %}
         {% crispy form %}     

     </form>     

{% endblock %}  

Model.py file Model.py文件

class Users(models.Model):
    Id = models.CharField(max_length = 20,primary_key =True)

class Advertisment(models.Model):
    title = models.CharField(max_length = 50)
    edition = models.CharField(max_length = 10)
    year = models.IntegerField()
    description = models.TextField(max_length = 2000)
    price = models.IntegerField()
    name = models.CharField(max_length = 20)
    contact = models.IntegerField()
    User_ID = models.ForeignKey(Users) 
    def __str__(self):
        return self.title
    def get_absolute_url(self):
        return reverse('advertisments_detail',kwargs={'pk':self.pk})

You should be able to set it in your view 您应该可以在自己的视图中进行设置

something like: 就像是:

if form.is_valid():
    form.save(commit=false)
    form.cleaned_data['user_id'] = request.user.id
    form.save()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM