小编Chr*_*ris的帖子

django访问原始的多个创建的表字段

模型:

class Subjects (models.Model):
    name = models.CharField(max_length=100)
    places = models.CharField(max_length=100)


class Student (models.Model):
    name = models.CharField(max_length=40)
    lastname = models.CharField(max_length=80)
    subjects = models.ManyToManyField(Subjects, blank=True)
Run Code Online (Sandbox Code Playgroud)

当我使用上面的模型时,Django创建了appname_student_subjects.

appname_student_subjects表例如,如下所示:

id   |    student_id   |  subjects_id
-----------------------------------------
1    |    1            |  10
2    |    4            |  11
3    |    4            |  19
4    |    5            |  10
...
~1000
Run Code Online (Sandbox Code Playgroud)

如何访问subjects_id字段并计算上表中subject_id存在的次数(然后使用它执行某些操作).例如:如果id为10的主题存在两次模板显示2.我知道我应该使用"len"结果,但我不知道如何访问subject_id字段.使用外键我在for循环中这样做:

results_all = Students.objects.filter(subject_id='10')
result = len(results_all)
Run Code Online (Sandbox Code Playgroud)

然后我将结果传递给模板并在for循环中显示它,但它不是外键,所以它不起作用.

django django-templates django-models django-views

8
推荐指数
1
解决办法
2705
查看次数

python/django for循环和列表属性

所以,我正在研究Django Book和django文档,我无法理解这个例子:

<ul>
{% for athlete in athlete_list %}
    <li>{{ athlete.name }}</li>
{% endfor %}
</ul>
Run Code Online (Sandbox Code Playgroud)

这是关于模板的,我不知道如何编写Context.如何从列表中获取名为"name"的属性?如果我创建一个字典,就不可能像本例中那样使用for循环.我已经像这样编码但是它不起作用:

athlete_list = {'name' = ['Athlete1', 'Athlete2', 'Athlete3']}
Context({'athlete_list':athlete_list})
Run Code Online (Sandbox Code Playgroud)

如果我将athlete_list变量更改为普通列表(不是字典),模板中的"athlete.name"也不会起作用.我不认为这是一本书中的错误,它可能很容易解决,但我无法得到它.

python django for-loop list

4
推荐指数
1
解决办法
806
查看次数

django模型表单自定义字段

我创建了一个包含一些类的模型:

class Student(models.Model):
    name = models.CharField(max_length=40)
    last_name = models.CharFIeld(max_length=40)
(...)
Run Code Online (Sandbox Code Playgroud)

在底部的相同models.py文件中我添加了一个对应于我的一个模型的类,所以我可以创建一个表单:

class StudentForm(ModelForm):
    class Meta:
        model = Student
Run Code Online (Sandbox Code Playgroud)

如何自定义通过ModelForm类创建的表单字段?我正在阅读django文档,我无法理解覆盖默认类型部分.例如,在文档中他们说这将起作用:

class ArticleForm(ModelForm):
    pub_date = DateField(label='Publication date')

    class Meta:
        model = Article
Run Code Online (Sandbox Code Playgroud)

但是当我输入我的价值观时,它不起作用.我无法定义我的标签:

class StudentForm(ModelForm):
    name = CharField(label='New label')

    class Meta:
        model = Student
Run Code Online (Sandbox Code Playgroud)

我是否必须创建一个类似forms.py的文件,其中包含与Model类相同的字段,然后自定义它们?是否可以仅使用模型表单更改单个字段css属性,如宽度,高度?

python django django-models django-forms

4
推荐指数
1
解决办法
4502
查看次数

连接两个不同的表并删除重复的条目

我是sql查询的新手.我有两张桌子:

表格1:

id_s  name   post_code     city     subject
------------------------------------------
1     name1  postal1    city1    subject1
2     name2  postal2    city2    subject2
3     name3  postal3    city3    subject3
4     name4  postal4    city4    subject4
...
~350
Run Code Online (Sandbox Code Playgroud)

表2:

id_p  name   post_code     city     subject
------------------------------------------
1     name1  postal1    city1    subject1
2     name2  postal2    city2    subject2
3     name3  postal3    city3    subject3
4     name4  postal4    city4    subject4 
...
~1200
Run Code Online (Sandbox Code Playgroud)

我想加入两个表,并删除具有相同名称和邮政编码的条目.我找到了一些关于如何做的答案但是它们太复杂了.

sql postgresql

3
推荐指数
1
解决办法
2万
查看次数

django重新组合石斑鱼名称作为选择详细名称

从Django文档中获取简单的重组示例:

{% regroup cities by country as country_list %}

<ul>
{% for country in country_list %}
    <li>{{ country.grouper }}
    <ul>
        {% for item in country.list %}
          <li>{{ item.name }}: {{ item.population }}</li>
        {% endfor %}
    </ul>
    </li>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

如果country.grouper是在带有choices = CHOICES_FIELD的模型中声明的Char字段,如何在模板中显示它的详细名称?通常我会采用Model.get_FOO_display,但country.grouper.get_country_list_display当然不会起作用.
自定义模板标签只是选择吗?

python django django-templates django-models

2
推荐指数
1
解决办法
976
查看次数