Django启动runserver报错:'ClientOrders'对象无'urls'属性
问题原因
你在admin.py里的模型注册方式错误。admin.site.register(Clients, ClientOrders)这种写法中,第二个参数会被Django识别为自定义ModelAdmin类,但你传入的是另一个模型ClientOrders,导致Django试图访问这个模型实例的urls属性(只有ModelAdmin类才有这个属性),从而抛出AttributeError。
解决方案
修正admin.py的注册代码,每个模型单独调用register方法,或者将多个模型放在列表中作为第一个参数传入:
修正后的admin.py
from django.contrib import admin from .models import Clients, ClientOrders, Manufacturers, Products # 方式1:每个模型单独注册 admin.site.register(Clients) admin.site.register(ClientOrders) admin.site.register(Manufacturers) admin.site.register(Products) # 方式2:批量注册多个模型(二选一即可) # admin.site.register([Clients, ClientOrders, Manufacturers, Products])
额外注意事项
你的ClientOrders模型的__str__方法直接返回self.client(一个Clients对象),可能会导致后续显示问题,建议修改为返回字符串类型的值:
def __str__(self) -> str: return f"{self.client.company} - 订单号{self.order_number}"
内容的提问来源于stack exchange,提问作者Arminn
相关产品推荐
相关产品推荐

