python - 如何从 Django 表单访问 response.user
问题描述
您好我正在尝试访问访问我的表单的用户 ID,以便让他选择从数据库中选择选项。
这是我的表单代码:
from django import forms
from .models import Viajes
class solicitudesFacturas(forms.Form):
razon_social = forms.CharField(max_length=200)
ruc = forms.IntegerField()
viajes_selected = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple, choices=listaviajes)
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user', None)
super(solicitudesFacturas, self).__init__(*args, **kwargs)
def getuser(self):
user = self.cleaned_data.get('id')
print(user.id)
listaviajes = []
listaviajes2 = Viajes.objects.filter(id=user.id)
for viajes in listaviajes2:
elemento = [viajes.ride_ID, str(
"Desde: " + viajes.pickup_zone + " - hasta: " + viajes.dropoff_zone + " - monto: " + str(
viajes.billable_amount) + " - el: " + str(viajes.ride_date))]
listaviajes.append(elemento)
print(listaviajes)
return listaviajes
问题是我不知道如何将 listaviajes 用于 viajes_selected,当我将 viajes_selected 放入 getuser 时,它不会出现在表单中。
请我希望你能帮助我。这是我的 view.py 代码:
@login_required(login_url='/login')
def crear_solicitud(response):
if response.method == "POST":
form = solicitudesFacturas(response.POST, user=response.user)
if form.is_valid():
razon_social = form.cleaned_data["razon_social"]
ruc = form.cleaned_data["ruc"]
viajes_selected = form.cleaned_data["viajes_selected"]
print(razon_social)
print(ruc)
print(viajes_selected)
print("id usuario: "+str(response.user.id))
usuario = User.objects.get(id=response.user.id)
print(usuario)
solicitud = Solicitudes(razon_social=razon_social, ruc=ruc, status="Solicitado", id=usuario)
solicitud.save()
solicitud_id = str(solicitud.id_solicitud)
for viaje in viajes_selected:
ride = Viajes.objects.get(ride_ID=viaje)
print(ride)
listaviajes = ListaViajes(id_solicitud=solicitud, ride_ID=ride)
listaviajes.save()
print("thankyou/%s" %solicitud_id)
return HttpResponseRedirect("thankyou/%s" %solicitud_id)
else:
print("id usuario: "+str(response.user.id))
return render(response, "DesafioBeat/home.html", {"form": solicitudesFacturas(user=response.user)})
解决方案
推荐阅读
- javascript - 嵌套 if else 语句仅适用于第一个语句
- c++ - c++ 终止 std::logic 错误......我的代码哪里出错了?
- python - Python程序airnef不适用于佳能3000D
- amazon-web-services - Elastic Beanstalk 自签名 HTTPS 不起作用
- arrays - 分配结构数组,然后使用数组方法访问它会产生编译错误
- javascript - 如何将 8 位整数转换为十六进制颜色值?
- python - 如何在python中将字符串转换为json列表?
- amazon-web-services - 具有 ec2 完全访问权限的 IAM 策略不允许创建 EC2 实例
- swift - 调用我的包时,由于“内部”保护级别,无法访问“CircularProgressView”初始化程序
- linux - 关于此错误的问题:未在此范围内声明“bdget”