0

when I create a score with CreateView, I want to make a query with order_by('username'), but the username is not English, most of them are Chinese Pinyin, I would like to sort them, I pasted my partial model, view and form are as below, thank you for any advice and assistance.

class Score(models.Model):
    test = models.ForeignKey(Test, verbose_name="考试名称", null=True, blank=True, on_delete=models.CASCADE)
    user = models.ForeignKey(User, verbose_name="应考人", null=True, blank=True, on_delete=models.CASCADE)
    score = models.FloatField(default=0, verbose_name="考试分数(满分100)")
    pass_score = models.FloatField(default=0, verbose_name="通过分数(满分100)")
    add_time = models.DateTimeField(auto_now=True, verbose_name="添加时间")


class ScoreCreateView(CreateView):
    model = Score
    form_class = ScoreForm
    template_name = ''

    def form_valid(self, form):
        testscore = form.save(commit=False)
        testscore.save()
        return redirect('', score.pk)


class ScoreForm(forms.ModelForm):
    user = forms.ModelChoiceField(queryset=User.objects.order_by('department', 'username'))

    class Meta:
        model = Score
        fields = ('test', 'user', 'score', 'pass_score')
Elsa
  • 1
  • 1
  • 8
  • 27

0 Answers0