10
votes

Django. Obtenir des valeurs pour tous les champs d'un objet

J'essaie de faire un JSON qui ressemblera à ceci:

@csrf_exempt
def create_subject(request, subject):
    subject, created= Subjects.objects.get_or_create( 
        name=subject,
        user=request.user,
        created_by=request.user)
    list = []
    columns = [Subjects._meta.get_all_field_names()]
    row = ????????
    for value in row:
        record = dict(zip(columns,value))
        list.append(record)
    result = simplejson.dumps(list, indent=4)
    return HttpResponse(result)


4 commentaires

Vous recherchez une méthode QuerySet ()? docs.djangoproject.com / FR / DEV / REF / MODÈLES / QUESYSETS / ...


Oui, exactement, je viens de le trouver, mais malheureusement quand je le fais: Row = Sujets.ObjectS.get (ID = 3) .Values ​​(), je reçois une erreur: "Objet des sujets" n'a aucun attribut "valeurs"


.Bet () renvoie une instance d'objet, pas de queryset. Dans cet exemple, sujets.Objects.filter (ID = 3) fonctionnerait comme prévu


Pouvez-vous poster votre réponse afin que je puisse fermer la question


3 Réponses :


9
votes

Utiliser la méthode de QuerySet: XXX


0 commentaires

9
votes

Si vous demandez comment faire cela pour un objet, vous devez utiliser:

from django.forms.models import model_to_dict


values = model_to_dict(the_object)


0 commentaires

0
votes

J'ai eu du mal à obtenir le champ de fichier pour fonctionner correctement. À la fin, c'est ce qui a fonctionné pour moi. XXX


0 commentaires