1
我想在mongodb上实现django-nonrel中的manytomany字段关系。它是在suggessted到:Django-Nonrel与Mongodb listfield
Django-nonrel form field for ListField
继接受的答案
models.py
class MyClass(models.Model):
field = ListField(models.ForeignKey(AnotherClass))
我不知道在哪里下面去,它已经在fields.py测试,widgets,py,models.py
class ModelListField(ListField):
def formfield(self, **kwargs):
return FormListField(**kwargs)
class ListFieldWidget(SelectMultiple):
pass
class FormListField(MultipleChoiceField):
"""
This is a custom form field that can display a ModelListField as a Multiple Select GUI element.
"""
widget = ListFieldWidget
def clean(self, value):
#TODO: clean your data in whatever way is correct in your case and return cleaned data instead of just the value
return value
admin.py
class MyClassAdmin(admin.ModelAdmin):
form = MyClassForm
def __init__(self, model, admin_site):
super(MyClassAdmin,self).__init__(model, admin_site)
admin.site.register(MyClass, MyClassAdmin)
以下错误不断弹出:
如果中间自定义类代码在models.py使用
name 'SelectMultiple' is not defined
如果自定义类别代码被带下models.py:
No form field implemented for <class 'djangotoolbox.fields.ListField'>
当我使用这种方法来定义自定义模型字段时,那么对应于模型生成的表不包含'cus汤姆场“。而且我在呈现时遇到了'Caught DatabaseError'异常:无此列:MyTable.MyCustomField'。我错过了什么吗? –
由于类型'ListField',找出它的忽略。如果我重写函数get_internal_type并返回textField等,那么它不会被忽略。不知道为什么ListField不工作。 –
必须重写db_type并提供ListField作为返回类型。 ListField没有在我使用的后端的数据类型中定义,所以db_type返回None并且Django跳过该字段。当试图保存表单时,现在停留在ListField的“接口错误:错误绑定参数4 - 可能不受支持的类型”! –