2017-04-15 3 views
1

사용자로부터 데이터를 검색하려고합니다. 나는이처럼 내 모델이 : django.contrib.auth.models 가져 오기 사용자사용자 fk로 데이터 검색 쿼리 Django 1.11

에서

from django.db import 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) 

처럼 내 쿼리를 그리고이 검색어 세트가 비어 있습니다. 게시물에 ** 전체 코드 :

나는 사용자 프로필에

** UPDATE를이 데이터를 검색해야합니다.

** 업데이트 2 : ** 프로필에 사용자 데이터를 표시하려면 "For 루프"를 사용하십시오. 이 데이터는 html 입력의 "value ="attr에서 검색됩니다. 사용자에게 데이터가 없으면 dosnt 양식이 표시됩니다.

데이터를 표시하는 방법입니다. 나는이 양식을 여기에서 볼 수있는 동일한 양식으로 채웠다. 내가 데이터가없는 내 프로필에 처음으로 Here's when i enter for first time to my profile with no data

덕분에 많이 입력 할 때 다음 This is the way I wanna show the data. I populated this form from the same form u see here.

입니다.

+0

:

$ python manage.py shell 

그런 다음 몇 가지 모델을 'user_id'가 아닙니다. 그래서 :'.filter (user = request.user)' – allcaps

+0

작동하지 마십시오. Queryset still [] :/ –

+0

가능한 한 빨리 전체 코드로 질문을 업데이트하겠습니다. –

답변

1

request.useranotherModel에 연결 한 사용자입니까? 현재 로그인하지 않은 경우 request.userAnonymousUser의 인스턴스가됩니다. 문서에 대한 자세한 내용보기 : https://docs.djangoproject.com/en/1.11/ref/request-response/#django.http.HttpRequest.user

당신은 당신의 모델을 테스트하기위한 장고 셸을 사용할 수 있습니다 모델의 필드가`user`라고

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 
+0

업데이트에 대한 아이디어가 있습니까? –

+0

queryset이 ​​100 % 비어 있다면, 남은 유일한 설명은 사용자에 대한 참조와 함께'informacionFacturacion' 모델을 실제로 저장하지 않는다는 것입니다. –

+0

queryset가 잘 작동합니다. 내 문제는 지금 내가 게시 한 img입니다. 이것을 위해 새로운 질문을 만들어야합니까? 아니면 여기서 도울 수 있습니까 –

관련 문제