【问题标题】:How can I retrieve form data from Django CreateView?如何从 Django CreateView 检索表单数据?
【发布时间】:2020-07-07 10:57:21
【问题描述】:

我有一个 Django 博客,用户可以在其中设置每个帖子的状态(活动、非活动)。我正在使用 Django 的基于类的通用视图,并且希望仅在状态设置为“活动”时将用户重定向到他们创建的帖子,否则他们应该被重定向到主页。如何从表单中检索此提交的信息以创建 if 语句?例如:如果 status == "a"...

views.py

from .models import Listing
from django.contrib.auth.mixins import LoginRequiredMixin
from django.contrib.messages.views import SuccessMessageMixin
from django.views.generic import CreateView

class PostCreateView(LoginRequiredMixin, SuccessMessageMixin, CreateView):
    model = Post
    fields = ['title', 'status', 'content']
    template_name = 'blog/post-form.html'
    success_message = 'Your post has been created.'

    def form_valid(self, form):
        form.instance.user = self.request.user
        return super().form_valid(form)

【问题讨论】:

    标签: python django django-forms django-views


    【解决方案1】:

    我认为“redirect”在方法(form_valid)中是无效的,所以你绝对应该放像def post这样的东西,并在request.data中获取值。我将尝试向您展示在生产中为我工作的代码。你让我知道这是否是正确的回应。

    类 LoginFormView(FormInvalidMessageMixin, LoginView):

    template_name = "clientes/login.html
    
    def post(self, request, *args, **kwargs):
        username = self.request.POST.get('username')
        password = self.request.POST.get('password')
        tipo_cuenta = self.request.POST.get('tipo-cuenta')
        tipo_cuenta = tipo_cuenta.strip()
    
        user = authenticate(username=username, password=password)
    
        if user:
            if has_group(user, 'admin'):
                messages.success(request, _('Not for admin'))
                return redirect('/login')
    
            cliente = Usuario.objects.filter(usuario=user).first()
            sucursal = Sucursal.objects.filter(usuario=user).first()
            empleado = Empleado.objects.filter(usuario=user).first()
    
            if tipo_cuenta == 'Punto afiliado':
                login(self.request, user)
                return redirect('/envios')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-22
      • 1970-01-01
      • 2013-04-06
      • 2022-01-22
      • 1970-01-01
      • 2019-03-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多