最近在
django
项目
中
有遇到关联查询但是数据表
中
字段未
设置
外键
关联的情况,记录一下解决办法。
from
django
.db import
model
s
class Book(
model
s.
Model
):
"""书籍表"""
name =
model
s.CharField('名称', max_length=50)
price =
model
s.IntegerField('价格', default=50)
publi
1.
django
从2.0开始ForeignKey
中
的on_delete参数是必须的。
on_delete=None, # 删除关联表
中
的数据时,当前表与其关联的field的行为
on_delete=
model
s.CASCADE, # 删除关联数据,与之关联也删除
on_delete=
model
s.DO_NOTHING, # 删除关联数据,什么也不做
on_delete=
model
s.PROTECT, # 删除关联数据,引发错误ProtectedError
django
admin
中
的list_display
设置
了,但是
页面
没有显示出来列存在问题project\myApp\
admin
.py#Register your
model
s here.#注册解决办法#Register your
model
s here.#注册最终实现
django
admin
中
的list_display
设置
了,但是
页面
没有显示出来列
project\myApp\adm...
首先,我这个想增加这个模型数据时有一个下拉选项是Customer表
中
的字段,然后想通过选择该选项保存后,把这个选项的值添加到本表
中
的customer_name字段。
第一个红框处是
外键
关联表名,第二个红框处是关联字段名,第三个是级联删除动作,必须要有,不然报错。
2.因为要做
外键
关联,所以
model
s
中
,Customer这张表就必须要加unique=True唯一参数,不然一样会报错。还有就是因为要返回是个字段的值,而不是一个数据集,所以在
python
3
中
我们要添加一个
这样才能使下拉选项是字段的值,
在
django
的后台管理站点插入数据时,发现需要添加
外键
时,下拉框
中
不显示值
按照显示内容
中
的object,考虑这里应该是调用的模型类的objects对象方法,那么去
model
s.py
中
对模型类添加一个__str__方法:
重新启动服务器,刷新下网页:
该问题已得到解决!
转载于:https://www.cnblogs.com/Horace-blogs/p/11...
(原创声明或转载信息)
原创声明:本文除了标明引用的内容外,都为本人原创,请尊重本人的知识产权,不能用于商业用途。欢迎转载,转载请在文章开头处插入以下内容:
本文转载自"狂龙ing”的Blog,地址为“http://blog.csdn.net/kuanglong2016/article/details/15816305"
问题:
Django
Admin
使用select来作为
Model
的
外键
class Server(
model
s.
Model
):
asset =
model
s.OneToOneField('Asset')
created_by_choices = (
('auto','Auto'),
('manual','Manual'),
created...
class City(
model
s.
Model
):
city_id =
model
s.AutoField(primary_key=True) #
设置
为主键,默认自增1
city_name =
model
s.Char...
在
Django
中
使用 Excel 文件,你可以使用第三方库如 xlrd 或 openpyxl。这里是一个基本的例子,
展示
了如何在
Django
admin
中
创建一个读取 Excel 文件的模块。
1. 安装 xlrd 或 openpyxl 库:
pip install xlrd
pip install openpyxl
2. 在
Django
项目的某个 app
中
创建一个表示 Excel 文件
中
数据的模型。例如:
```
python
from
django
.db import
model
s
class Excel
Model
(
model
s.
Model
):
name =
model
s.CharField(max_length=255)
date =
model
s.DateField()
value =
model
s.FloatField()
3. 创建一个表示 Excel 文件的模型管理器。例如:
```
python
import xlrd
class Excel
Model
Manager(
model
s.Manager):
def import_data(self, file_path):
workbook = xlrd.open_workbook(file_path)
worksheet = workbook.sheet_by_index(0)
for row in range(1, worksheet.nrows):
name = worksheet.cell(row, 0).value
date = worksheet.cell(row, 1).value
value = worksheet.cell(row, 2).value
self.create(name=name, date=date, value=value)
4. 在模型
中
使用刚刚创建的模型管理器。例如:
```
python
class Excel
Model
(
model
s.
Model
):
name =
model
s.CharField(max_length=255)
date =
model
s.DateField()
value =
model
s.FloatField()
objects = Excel
Model
Manager()
5. 在
Django
admin
中
注册模型。例如:
```
python
from
django
.contrib import
admin
@
admin
.register(Excel
Model
)
class Excel
Model
Admin
(
admin
.
Model
Admin
):
6. 在
Django
admin
的模型
页面
中
添加一个“导入 Excel”的按钮。例如:
```
python
from
django
.contrib import
admin
from
django
.urls import reverse
from
django
.utils.html import format_html
@
admin
.register(Ex
“C:\Development\wsbuild64\Wireshark.sln”(默认目标) (1) ->
“C:\Development\wsbuild64\wireshark.vcxproj.metaproj”(默认目标) (2) ->
“C:\Development\wsbuild64\wireshark.vcxproj”(默认目标) (141) ->
(Link 目标) ->
qtmain.lib(qtmain_win.obj) : warning LNK4099: 未找到 PDB“qtmain.pdb”(使用“qtmain.lib(qtmain_win.obj)”或在“C:\Developm
ent\wsbuild64\run\RelWithDebInfo\qtmain.pdb”中寻找);正在链接对象,如同没有调试信息一样 [C:\Development\wsbuild64\wireshark.vcxproj]
1 个警告
C#获取时间
抚顺菜市场: