Django表单 - 使用数据库中的变量

时间:2016-08-27 22:02:38

标签: python mysql django

我有以下表格完美运作:

# 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表中选择最大的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'

我希望这是有道理的,但如果您需要更多信息,请问:)

我非常感谢任何协助,非常感谢,Alan。

1 个答案:

答案 0 :(得分:0)

最后到达那里:)

我使用了以下内容:

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

    for x in campaignnoquery:
        test2 = x.campaignno

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