이것은 장고에서 커스텀 필드를 만드는 것에 관한 질문입니다. TextField
에서 상속받은 EditAreaField
이라는 필드를 만들고 있습니다. 나는이 분야에 사용자 정의 위젯을 할당하고있어 5 라인에Django에서 formfield() 메서드를 호출하는시기는 언제입니까?
class EditAreaField(models.TextField):
description = "A field for editing the HTML of a page"
def formfield(self, **kwargs):
defaults = {}
defaults['widget'] = EditArea() # setting a new widget
defaults.update(kwargs)
return super(EditAreaField, self).formfield(**defaults)
: 여기처럼 내 코드가 어떻게 표시되는지를 보여줍니다. 온라인으로 6에서 매개 변수를 업데이트합니다.
문제는 Django가 django.contrib.admin.widgets.AdminTextareaWidget
으로 설정된 매개 변수 widget
을 보내고 내 EditArea() 위젯을 덮어 씁니다.
어떻게 장고가 설정하는 값을 변경할 수 있습니까?
defaults.update(kwargs)
defaults['widget'] = EditArea() # override django here
그러나 그것을 할 수있는 가장 좋은 방법은 그 정말 : 내 코드처럼 보이는, 그래서 분명히 난 그냥, 선 5와 6을 전환하여 자신의 설정을 덮어 쓸 수 있을까?
부수적으로 장고 사이트의 formfield() 함수에 관한 문서를 찾을 수 없었습니다. 사용되지 않는 이유는 무엇입니까?
질문에 대한 답변을 드리겠습니다. 다음은 formfield의 문서 링크입니다. [http://docs.djangoproject.com/en/dev/howto/custom-model-fields/#django.db.models.formfield](http://docs.djangoproject.com) /en/dev/howto/custom-model-fields/#django.db.models.formfield) – czarchaic
죄송합니다. http://docs.djangoproject.com/en/dev/howto/custom-model-fields/#django.db.models.formfield – czarchaic