01-04-2010 20:46, Halil İbrahim YILMAZ yazmış:
> Merhaba ModelForm ile oluşturduğum alanlarda filtreleme yapmak istiyorum
> ancak bir türlü beceremedim. Acaba bunun için bulabileceğim bir örnek
> mevcut mudur?
> Aşağıdaki şekilde bir view'a sahibim:
>
> def ziyaret_ekle(request):
> if request.POST:
> zform = ZiyaretForm(request.POST)
> if form.is_valid():
> yeni_ziyaret_objesi = form.save(commit = False)
> yeni_ziyaret_objesi.temsilci = request.user
> yeni_ziyaret_objesi.save()
> return HttpResponse("Veritabanina kaydedildi. Yeni
> ziyaretin id'si : %d" % yeni_ziyaret_objesi.pk)
> else:
> render_to_response('ziyaret_kaydet.html', {'zform': zform},
> context_instance=RequestContext(request))
> return render_to_response('ziyaret_kaydet.html', {'zform':
> ZiyaretForm()}, context_instance=RequestContext(request))
>
> Aşağıdaki şekilde yapmayı denedim ancak hata vermemesine karşın tüm
> listeyi alıyorum. oysa ben sadece o userın temsilcisi olduğu müşteriyi
> çekmek istiyorum
> zform = ZiyaretForm(request.POST,
> queryset=Musteri.objects.filter(temsilci = request.user))
>
> Saygılarımla.
> _______________________________________________
> Linux-programlama mailing list
> [email protected]
> https://liste.linux.org.tr/mailman/listinfo/linux-programlama
> Liste kurallari: http://liste.linux.org.tr/kurallar.php
>
Merhaba, Model yapımı ve view yapımı Özgür Bey'in yardımı ile aşağıdaki
şekilde değiştirdim,
from django.db import models
from django.forms import *
from yenicrm.musteri.models import *
from django.contrib.auth.models import User
from django.forms.extras.widgets import *
# Create your models here.
class Ziyaret(models.Model):
tarih = models.DateField()
temsilci = models.ForeignKey(User)
musteri = models.ForeignKey(Musteri)
gorusler = models.TextField()
class ZiyaretForm(ModelForm):
tarih = DateField(widget=SelectDateWidget())
musteri = ModelChoiceField(queryset = Musteri.objects.none())
def __init__(self, temsilci = None, *args, **kwargs):
super(ZiyaretForm, self).__init__(*args, **kwargs)
self.fields["musteri"] = Musteri.objects.none() if temsilci is
None else Musteri.objects.filter(temsilci = temsilci)
class Meta:
model = Ziyaret
exclude = ("temsilci",)
View.py ise aşağıdaki gibidir:
from django.shortcuts import render_to_response
from django import forms
from yenicrm.musteri.models import *
from yenicrm.ziyaret.models import *
from django.contrib.auth.decorators import login_required
from django.template import Context, RequestContext
from django.http import HttpResponse
@login_required
def index(request):
ziyaretler = Ziyaret.objects.filter(temsilci = request.user)
return render_to_response('ziyaret.html', {'ziyaretler': ziyaretler})
@login_required
def ziyaret_ekle(request):
if request.POST:
zform = ZiyaretForm(request.POST)
if form.is_valid():
yeni_ziyaret_objesi = form.save(commit = False)
yeni_ziyaret_objesi.temsilci = request.user
yeni_ziyaret_objesi.save()
return HttpResponse("Veritabanina kaydedildi. Yeni
ziyaretin id'si : %d" % yeni_ziyaret_objesi.pk)
else:
render_to_response('ziyaret_kaydet.html', {'zform': zform},
context_instance=RequestContext(request))
return render_to_response('ziyaret_kaydet.html', {'zform':
ZiyaretForm()}, context_instance=RequestContext(request))
Herhangi bir değişiklik yapmadan {{zform.as_table}} diyerek çağırdığımda
formu göremiyorum. view içinde zform = ZiyaretForm(request.POST,
temsilci = request.user) ve/veya return
render_to_response('ziyaret_kaydet.html', {'zform': ZiyaretForm(temsilci
= requst.user)}, context_instance=RequestContext(request)) şeklinde
çağırdığımda da form görünmüyor. Tıkandım kaldım, ne yapabilirim?
Saygılar.
_______________________________________________
Linux-programlama mailing list
[email protected]
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php