创建两个数据表类,并实现主外键关联(出版社与图书 一对多关系)
1 #创建一个出版社类
2 class Press(models.Model):
3 id =models.AutoField(primary_key=True), #自增型主键
4 name=models.CharField(max_length=30,null=False,unique=True) #varchar 30 非空且唯一
5
6 class Book(models.Model):
7 bid=models.AutoField(primary_key=True)
8 bname=models.CharField(max_length=48,null=False,unique=True)
9 press=models.ForeignKey(to='Press') #外键关系 是一个press对象
查询有主外键关系的book表时,可以直接调press对象下的name属性 也可以调id
1 {% for foo in book %}
2 <tr>
3 <td>{{ foo.bid }}</td>
4 <td>{{ foo.bname }}</td>
5 <td>{{ foo.press.name }}</td>
6 <td>
7 <a href="/del_book/?id={{ foo.bid }}">删除</a>
8 <a href="/edit_book/?id={{ foo.bid }}">编辑</a>
9 </td>
10 </tr>
11 {% endfor %}
有些时候查询到的结果希望能编辑,又不想被胡乱修改可以使用下拉列表select
1 出版社:<select name="pre">
2 {% for foo in press %}
3 <option value="{{ foo.id}}">{{ foo.name }}</option>
4 {% endfor %}
5
6 </select>
此时后台在来获取pre,取到的其实就是value的值