我希望能够将一个字段标记为未使用,因此当数据库模式中的相应列不存在时,可以防止django出错。
我想这样做是因为没有理由部署未使用的代码会使站点崩溃。
类似
class SomeObject(Model):
some_field = models.CharField(unused=True)
SomeObject.objects.all()[0].id # this line should not fail
现在它给出
django.db.utils:OperationalError: (1054, "Unknown column 'someobject.some_field' in 'field list'")
一种标准方法是使用try:
和except
语句reference。在您的示例中,
try:
SomeObject.objects.all()[0].id
exept OperationalError:
pass # or whatever you want in this case
如果经常使用模型,请考虑重新定义其get_queryset函数。例如,
class YourClass:
def get_queryset(self, request):
try:
super(your-model-super, self).get_queryset(request)
exept OperationalError, error:
if error.code == 1054:
pass
else:
raise
我想不出其他方法来解决这个问题。