Muhammad Hafid

Janganlah malas untuk berkarya, biarpun sederhana tetapi bermanfaat bagi orang lain. Kerjakan dengan penuh kesabaran dan keikhlasan

Menampilkan Data Sesuai Dengan Session Login Di Django

Yeyeye, kali ini saya membahas django lagi, ya karena sedang ada project besar dan saya lagi membuat sebuah pola aplikasi. Pembahasan kali ini adalah bagaimana caranya saya menampilkan entry data sesuai dengan siapa yang mengentry. Nah Disini kita hanya bekerja di class admin.py ya guys.

Pada class kalian yang hendak diproses tambahkan script dibawah ini :
def get_queryset(self, request):
        qs = super(ParticipantsAdmin, self).get_queryset(request)
        return qs.filter(user_id=request.user)
Penjelasaannya adalah
def get_queryset(self, request):
        qs = super(NamaClassAdmin, self).get_queryset(request)
        return qs.filter(fieldUserdiClass=request.user) 

Ini adalah contoh script saya secara keseluruhan

admin.py
class ParticipantsAdmin (admin.ModelAdmin):
    list_display = ['id', 'name', 'email', 'status', 'types', 'createdAt', 'userby']
    list_filter = ('status',)
    search_fields = ['name', 'email', 'status', 'types']
    list_per_page = 15
    ordering = ('id',)
    def userby(self, obj):
        return obj.user.username
    def get_queryset(self, request):
        qs = super(ParticipantsAdmin, self).get_queryset(request)
        return qs.filter(user_id=request.user)

admin.site.register(Participants, ParticipantsAdmin) 

model.py
class Participants (models.Model):
    STATUS_CHOICES = (
        ('Y', 'Enabled'),
        ('N', 'Disabled'),
    )
    TIPE_CHOICES = (
        ('P', 'Perusahaan'),
        ('O', 'Perorangan'),
    )
    types = models.CharField(max_length=1, choices=TIPE_CHOICES, blank=False)
    name = models.CharField(verbose_name="Name or Caption", max_length=250, blank=False)
    email = models.EmailField(verbose_name="Mail Address", max_length=150, blank=False)
    phone = models.CharField(verbose_name="Phone Number", max_length=50,blank=True)
    fax = models.CharField(verbose_name="Fax Number", max_length=50, blank=True)
    provinsi = models.ForeignKey(Provinces, verbose_name="Province", blank=True)
    address = models.TextField(blank=True)
    website = models.CharField(verbose_name="Website Profile", max_length=250, blank=True)
    status = models.CharField(max_length=1, choices=STATUS_CHOICES, blank=False, default='N')
    createdAt = models.DateTimeField(verbose_name="Create Date", auto_now_add=True, blank=False)
    updatedAt = models.DateTimeField(verbose_name="Update Date", auto_now_add=True, blank=False)
    #user = models.ForeignKey(User)
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    def __unicode__(self):
        return self.name
    class Meta:
        ordering = ['name']
        verbose_name_plural = 'Participants' 
Bagaimana mudah bukan ?
Labels: Django , python

Thanks for reading Menampilkan Data Sesuai Dengan Session Login Di Django . Please share...!

0 Comment for "Menampilkan Data Sesuai Dengan Session Login Di Django"

Terima kasih sudah berkunjung ke blog saya, semoga informasi nya bermanfaat buat anda.

Back To Top