Я новичок в Джанго.Я уже несколько раз пытался решить эту проблему.Пожалуйста, примите во внимание мою ошибку, если вопрос не задан правильно.
Я не знаю, где я иду не так.
models.py
class Participant(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE)
first_name = models.CharField(max_length=255,blank=True,null=True)
last_name = models.CharField(max_length=255,blank=True,null=True)
class Assessment(models.Model):
name = models.CharField(max_length=255)
slug = models.SlugField(blank=True)
created = models.DateTimeField(auto_now_add=True,editable=False)
modified = models.DateTimeField(auto_now=True)
class Seminar(models.Model):
topic = models.CharField(max_length=255)
date = models.DateField(null=True,blank=True)
time = models.TimeField(null=True,blank=True)
assessment = models.ManyToManyField(Assessment,blank=True,through='SeminarParticipant')
participant = models.ManyToManyField(Participant,blank=True,through='SeminarParticipant')
created = models.DateTimeField(auto_now_add=True,editable=False)
modified = models.DateTimeField(auto_now=True)
class SeminarParticipant(models.Model):
assessment = models.ForeignKey(Assessment,blank=True,on_delete=models.CASCADE)
seminar = models.ForeignKey(Seminar,blank=True,on_delete=models.CASCADE)
participant = models.ForeignKey(Participant,blank=True,on_delete=models.CASCADE)
request_time = models.PositiveIntegerField(default=0,validators=[MinValueValidator(0),])
is_survey_completed = models.BooleanField(default=False)
created = models.DateTimeField(auto_now_add=True,editable=False)
modified = models.DateTimeField(auto_now=True)
Уже пытайтесь понятьэто тоже:
многие ко многим select_related в представлении списка на основе классов django
Как получить доступ ко многим многим полям в представлениях на основе классов вDjango?
views.py
class SeminarListView(ListView):
template_name = 'show_seminar.html'
model = Seminar
context_object_name = 'seminar'
def get_queryset(self):
queryset = Seminar.objects.prefetch_related('assessment_set').filter(participant__user=self.request.user).order_by('created')
return queryset
show_seminar.html
<div class="row mt-5">
{% for obj in seminar %}
<div class="col-sm-6">
<div class="card mt-2">
<div class="card-header">
<h4 class="text-center">{{obj.topic}}</h4>
</div>
<div class="card-body">
<a href="{%url 'seminar:question' 1 %}"><button>Go For Seminar</button></a>
</div>
<div class="card-footer">
</div>
</div>
</div>
{% endfor %}
</div>
<div>
{% for obj in seminar.seminarparticipant_set.all %}
<p>{{obj}}</p>
{% endfor %}
</div>
Я тоже хочу отображать оценку на html-странице.Но только получение данных, связанных с семинаром.В obj.seminar.seminarparticipant_set.all.Я становлюсь пустым.
Пожалуйста, помогите !!