Как сделать проверку / обработку форм в Django? - PullRequest
0 голосов
/ 13 июня 2011

Это мои views.py

from django.conf import settings
from django.shortcuts import render_to_response
from django.template import RequestContext, loader
from django import forms
from django.core import validators
from django.contrib.auth.models import User
from django.utils import simplejson

def PermLayer(request):
    users = User.objects.all()
    if request.method == 'POST': 
            form = PermForm(request.POST) 
            if form.is_valid():
            user = form.cleaned_data['user']
                    rad1=form.cleaned_data['radio1']
                            rad2=form.cleaned_data['radio2']
                perm = Permission()
            perm.user = user
            perm.table = ContentType.objects.get_for_model(TableToAddPermissionFor)
            perm.permi = rad1 + rad2 
            perm.save()
            return render_to_response('permission.html',{'user':users})
        else:
            form = PermForm()



        return render_to_response('permission.html', {'user':users})

Это мой forms.py

from django import forms
from django.forms.widgets import RadioSelect

class PermForm(forms.Form):
    user = forms.CharField(max_length=100)
    RADIO_CHOICES1 = [['1','Radio 1'],['2','Radio 2']]
    RADIO_CHOICES2 = [['3','Radio 2'],['4','Radio 2']]
    radio = forms.ChoiceField( widget=RadioSelect(), choices=RADIO_CHOICES1)
    radio = forms.ChoiceField( widget=RadioSelect(), choices=RADIO_CHOICES2)

Как проверить форму, как я хочу проверить, есть ли пользователь в базе данных, и получить его первичный ключ. Я понимаю, что нужно использовать Q из django.db, но по этому вопросу немного не хватает документации.

1 Ответ

2 голосов
/ 13 июня 2011

Если я правильно вас понял, вы хотите проверить, существует ли пользователь в базе данных?

Если так, почему вы не установили поле пользователя в PermForm (forms.py) как ForeignKey (Пользователь)?

И хорошо, получить пользователя вы можете следующим образом:

user = User.objects.get(username=form.cleaned_data['user'])

Первичный ключ пользователя будет user.id

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...