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 - 可能不受支持的類型」! –