我正在尝试从用户检索数据。我有这样的模型:
from django.db import models
来自django.contrib.auth.models导入用户
class informacionFacturacion(models.Model):
usuario = models.ForeignKey(User)
apellidos = models.CharField(max_length=100, default="editar")
nombres = models.CharField(max_length=100, default="editar")
telefono = models.CharField(max_length=100, default="editar")
email = models.EmailField(default="editar", null=False)
direccion_1 = models.CharField(max_length=100, default="editar")
direccion_2 = models.CharField(max_length=100, null=True, blank=True)
provincia = models.CharField(max_length=100, default="editar")
ciudad = models.CharField(max_length=100, default="editar")
codigoPostal = models.CharField(max_length=100, default="editar")
empresa = models.CharField(max_length=100, default="editar")
def __str__(self):
return self.usuario
我的更新用户信息表单:
from .models import informacionFacturacion
class informacionFacturacionForm(ModelForm):
class Meta:
model = informacionFacturacion
fields = [
"usuario",
"apellidos",
"nombres",
"telefono",
"email",
"direccion_1",
"direccion_2",
"provincia",
"ciudad",
"codigoPostal",
"empresa",
]
在我看来,我有这样的查询
from django.contrib.auth.decorators import login_required
from .models import informacionFacturacion
from .forms import informacionFacturacionForm
@login_required
def datosPersonales(request):
form = informacionFacturacionForm(request.POST or None)
if form.is_valid():
instance = form.save(commit=False)
instance.save()
query = informacionFacturacion.objects.filter(usuario=request.user)
context = {
"titulo": "Datos personales | Cadenas Giordanino S.R.L" + request.user.username,
"body_class": "class= sidebar_main_open sidebar_main_swipe",
"form": form,
"infoFacturacion": query,
}
template = "micuenta/datosPersonales.html"
return render(request, template, context)
此QuerySet为空。
我需要在用户个人资料中检索此数据
**更新:**帖子上的完整代码。
**更新2:**为了在配置文件上显示用户数据,我使用“For循环”。此数据在html输入的“value =”attr中检索。如果用户没有数据,则表单dosnt显示。
这是我想要显示数据的方式。我用你在这里看到的相同形式填写了这个表格。
非常感谢。
答案 0 :(得分:1)
您确定request.user
是您与anotherModel
相关联的用户吗?如果您当前未登录,则request.user
将成为AnonymousUser
的实例。请参阅文档中的更多内容:https://docs.djangoproject.com/en/1.11/ref/request-response/#django.http.HttpRequest.user
您可以使用Django Shell测试模型:
$ python manage.py shell
然后制作一些模型:
from django.contrib.auth.models import User
from models import AnotherModel
# Grab a User
user = User.objects.first()
# Create a new anotherModel, linking the user
my_model = AnotherModel(
user=user,
address="whatever"
)
my_model.save()
my_model.user == user
>>> True