Muhammad Hafid

Blog Belajar Python atau Django

Muhammad Hafid

Tugas kita itu adalah bukan untuk berhasil, tugas kita adalah untuk mencoba, karena di dalam mencoba itulah kita menemukan dan belajar membangun kesempatan untuk berhasil.

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"

Back To Top