Lọc danh sách model và in ra màn hình

Chào mọi người.
Mình có sử dụng model User mặc định và tạo thêm 1 class Student OneToOneField với User như dưới

class Student(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    fullname = models.CharField(max_length=30, default='Trần Văn A')
    CHOICES = (
    ('Leader', 'Leader'),
    ('Tình nguyện viên', 'Tình nguyện viên'),
    )
    position = models.CharField(max_length=30, choices=CHOICES, default='Tình nguyện viên')
    MA = (
    ('52_007', '52_007.THPT XXX'),
    ('52_003', '52_003.THPT YYY'),
    )
    school = models.CharField(max_length=30, choices=MA, default='52_007')
    university = models.CharField(max_length=30)
    MSSV = models.CharField(max_length=30)

Bây giờ mình muốn lọc DS các bạn là “Tình nguyện viên” và in ra giao diện html thì làm thế nào ạ ?
Mình có thử như sau nhưng bị lỗi ‘Student’ object is not iterable

View.py :slight_smile:

def showMem(request):
    tnv = Student.objects.get(school=Tình nguyện viên')
    return render(request, "home/mem.html", {'DS' : tnv})

mem.html

{% for item in DS %}
<tr>
<td>{{ item.fullname }}</td>
<td>{{ item.fullname }}</td>
<td>{{ item.fullname }}</td>
<td>{{ item.fullname }}</td>
<td>{{ item.fullname }}</td>
</tr>
{% endfor %}

Ta chỉ dùng get khi lấy một đối tượng. filter dùng để lấy nhiều đối tượng.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?