使用来自数据库的变量的Django表单

2024-05-23 18:18:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的表格,非常有效:

# coding=utf-8

    from django import forms
    from straightred.models import StraightredTeam
    from straightred.models import UserSelection

    class SelectTwoTeams(forms.Form):

        cantSelectTeams = UserSelection.objects.filter(campaignno=102501349)

        currentTeams = StraightredTeam.objects.filter(currentteam = 1).exclude(teamid__in=cantSelectTeams.values_list('teamselectionid', flat=True))
        team_one = forms.ModelChoiceField(queryset = currentTeams)
        team_two = forms.ModelChoiceField(queryset = currentTeams)

但是,如您所见,campaignno是硬写入查询的。理想情况下,我想从mysql表中选择maximum campaignno并将其用作campaigno,而不是上面的102501349。mysql表和模型如下:

mySQL表:

mysql> desc straightred_userselection;
+-------------------+----------------------+------+-----+---------+----------------+
| Field             | Type                 | Null | Key | Default | Extra          |
+-------------------+----------------------+------+-----+---------+----------------+
| userselectionid   | int(11)              | NO   | PRI | NULL    | auto_increment |
| campaignno        | varchar(36)          | NO   |     | NULL    |                |
| teamselection1or2 | smallint(5) unsigned | NO   |     | NULL    |                |
| fixtureid         | int(11)              | YES  | MUL | NULL    |                |
| teamselectionid   | int(11)              | NO   | MUL | NULL    |                |
| user_id           | int(11)              | NO   | MUL | NULL    |                |
+-------------------+----------------------+------+-----+---------+----------------+

Django型号:

class StraightredSeason(models.Model):
    seasonid = models.IntegerField(primary_key = True)
    seasonyear = models.CharField(max_length = 4)
    seasonname = models.CharField(max_length = 36)

    def __unicode__(self):
        return self.seasonid

    class Meta:
        managed = True
        db_table = 'straightred_season'

我希望这是有意义的,但如果你需要更多的信息,那就问问:)

我很感激你的帮助,非常感谢,艾伦


Tags: nofromimporttruemodelsmysqlformsnull
1条回答
网友
1楼 · 发布于 2024-05-23 18:18:48

最后到达那里:)

我使用了以下方法:

campaignnoquery = UserSelection.objects.filter(user=349).order_by('-campaignno')[:1]

    for x in campaignnoquery:
        test2 = x.campaignno

然后我可以使用test2作为变量

相关问题 更多 >