# polls/models.py
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
q1 = Question.objects.get(question_text='question1')
q2 = Question.objects.get(question_text='question2')
Choice.objects.create(question=q1, choice_text='choice1', votes=1)
Choice.objects.create(question=q1, choice_text='choice2', votes=1)
Choice.objects.create(question=q2, choice_text='choice3', votes=1)
Choice.objects.create(question=q2, choice_text='choice4', votes=1)
--WÄHLEN Sie nur den externen Schlüssel von Choice
, question
(= question_id
)
#Durch Werte drücken--
Choice.objects.values('question')
--SQL ausgeführt werden
mysql> SELECT `polls_choice`.`question_id` FROM `polls_choice`;
+-------------+
| question_id |
+-------------+
| 1 |
| 1 |
| 2 |
| 2 |
+-------------+
4 rows in set (0.00 sec)
#Entfernen Sie Duplikate mit eindeutigen--
Choice.objects.values('question').distinct()
--SQL ausgeführt werden
mysql> SELECT DISTINCT `polls_choice`.`question_id` FROM `polls_choice`;
+-------------+
| question_id |
+-------------+
| 1 |
| 2 |
+-------------+
2 rows in set (0.00 sec)
――Es wurde ordnungsgemäß dedupliziert
order_by
zu 2#Reihenfolge in einem Feld, das sich von dem durch Werte eingegrenzten Feld unterscheidet_durch
Choice.objects.values('question').distinct().order_by('-id')
--SQL ausgeführt werden
--Aus irgendeinem Grund bestellen_Das von angegebene Feld ist AUSGEWÄHLT...
mysql> SELECT DISTINCT `polls_choice`.`question_id`, `polls_choice`.`id` FROM `polls_choice` ORDER BY `polls_choice`.`id` DESC;
+-------------+----+
| question_id | id |
+-------------+----+
| 2 | 4 |
| 2 | 3 |
| 1 | 2 |
| 1 | 1 |
+-------------+----+
4 rows in set (0.00 sec)
order_by
im Code erscheint
――Es ist schwer zu finden, ob es mit "Meta" wie unten gezeigt "bestellt" wird, und es ist ** am schlimmsten **.class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
class Meta:
ordering = ('-id',)
Choice.objects.values('question').distinct().order_by()
Choice.objects.values('question').distinct('question').order_by('question', '-id')