Django forms içinde login olan user ın değerlerini kullanma

django
#1

Merhabalar forumda yeniyim.
Kendi çapımda bir şeyler yapmaya çalışıyorum ama bir yerde takıldım
django CustomUser olarak sube diye forinkey ekledim.

class Sube(models.Model):
    sube = models.CharField(max_length=40, verbose_name="Şube")
    sube_olusturma_date = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.sube


class CustomUser(AbstractUser):
    # add additional fields in here
    sube = models.ForeignKey(Sube, on_delete=models.CASCADE,verbose_name="Şubeler", related_name="CustomUsers")
    def __init(self):
        return self.username

bunu view.py içinde request.user.sube yazarak kullana biliyorum

ama forms.py içinde nasıl kullanacam

class AracEKleForm(forms.ModelForm):
    surucu1 = Surucu.objects.filter(
        sube_id=None) | Surucu.objects.filter(durum=True,sube_id=2)
    surucu = forms.ModelChoiceField(queryset=surucu1, required=False)

2 yazan yere request.user.sube yi nasıl tanımlaya bilirim

#2

tam olarak yapmak istediğinizi yazabilir misiniz ?

#3

Tabiki. Kısaca anlatayım firmamızda çalışan araçların kimin tarafından dışarı çıkıldığı giriş çıkışında gideceği yeri çıkarken ki km ve girişteki km sini tutmak ve aradaki farkı tabloya yazmak tabi farklı şubelerde var. Şimdi burda araç kayıt sırasında kayıt eden kullanıcıya sadece kendi şubesindeki sürücü ve plakaların görünmesini istiyorum sürücü ve plaka tablosunda şube id ekli aynı şekilde login olan kullanıcının da şube id belli ayni şekilde request.user.sube ile login olan kullanıcının şubesine ulaşa biliyorum kayıt sayfası görünürken bu kiritere göre görünmesini istiyorum

#4

anladım. kayıt eden kulllanıcıya diyorsan ilgili kaydı oluşturan user ı filtreleyeceksin
request.user sana text doner email adresi veya kullanıcı adı gibi
request.user.id ise o kullanıcının id sini döner.
bu nu alıp filtrende kullanırsan yapabilirsin.
django orm in de bu şekilde zaten bunun karşılıgı tsql where conditonudur.

def get_context_data(self, **kwargs):
    context = super().get_context_data(**kwargs)
    context['templates'] = Master.objects.filter(created_by_id=self.request.user.id).order_by('id')
    return context
1 Like
#5

kayıt eden kullanıcıyı formu kayıt ederken create_user gibi bir kolon da tabloda tutman gerekiyor

#6

bir de kayıtları listeledigin view ı gönderebilirsen oraya da bakmak lazım.
sonuçta bunu view den göndereceksin.

#7

Çok Teşekkürler view.py gerekli eklemeyi yaptım.
Bu şekilde
form = AracEKleForm(request.POST or None, user=request.user.sube_id)
ve şuanda kaydetmeye başladım ve istediğim gibi oldu giren kullanıcının şube id sine göre plaka ve sürücüler geldi.

biraz abartıcam ama bir soru daha sormak istiyorum size forms ekleme esnasında sayfa da seçilen plakaya göre son o plakanın km getirmek istiyorum burada nasıl bir yol izlemem lazım.
plakayı forms.ModelChoiceField ile seçtiriyorum burada seçilene göre nasıl alttaki bir kutuya veri yollaya bilirim

#8

Son sorumu da farklı bir şekilde hallettim. ilk soru da yardımın için sağol
Kolay gelsin