양식의 동적 작성을 허용하는 설문지 앱이 있습니다. 현재 시스템에서는 프로젝트에 연결합니다. 다음은 내 모델의 예입니다. 설문 조사 앱을 현재의 장고 프로젝트에서 다른 앱의 의존성과 완전히 분리하고 싶습니다.URL을 통해 Django ContentType 프레임 워크 연결
#project.models
class Project(models.Model):
name = models.CharField(max_length.....
category = models.CharField(max_length
question_sets = models.ManyToManyField(Question_Set)
#questionnaire.models
class Question(models.Model):
question = models.CharField(max_length....
question_type = models.IntegerField(choices=.....
class Question_set(models.Model):
name = models.CharField(....
questions = models.ManyToManyField(Question)
내 설문지 내에서,이 예제에서는 두 가지 기본 기능 인 Question_set create 및 Question create가 있습니다. Question_set create 함수에는 Question_set에 생성 된 Questions를 추가 한 다음 Question_set를 저장할 수있는 양식이 있습니다. 현재 나는 Question_set
#questionnaire.views
def question_set_create(request, project_id, form_class=AddSetForm, template_name=....):
if request.method = "POST":
form = form_class(request.POST)
if form.is_valid():
set = form.save()
project = Project.objects.get(id=project_id)
project.question_sets.add(set)
....
#questionnaire.urls
#pattern for question_set_create
url(r'^(?P<project_id>[-\w]+)/add_set/$', 'questionnaire_create' , name="project_questionnaire_create"),
을 프로젝트 인스턴스를 얻을 추가 할 수 있도록 나는 또한이 솔루션은 장고 ContentType 프레임 워크를 포함 생각이보기에 URL에 PROJECT_ID을 통과하지만 난에 대해 갈 수있는 가장 좋은 방법은 확실하지 않다 모델 클래스를 url을 통해 전달합니다. 그래서 Question_set이 Project 대신에 Foo 모델에 저장 되었다면. 어떻게 URL에서 모델 클래스를 식별 할 수 있습니까?
감사 할 것이다. 나는 generic.GenericRelation에 익숙하지 않다. 매일 새로운 것을 배우십시오. 그것을 체크 아웃하려고합니다 –
"projects.project"귀하의 URL 정규식과 일치하지 않습니다. 정규 표현식에 대한 전문가는 아니지만 'url (r'^ (? P [- \ w] +. [- \ w] +)/(? P [- \ w] +)/add_set/$ ''가 작동 할 수도 있습니다. –
LaundroMat
... ContentType 객체의 .name에 공백이나 특수 문자를 처리하는 방법은 무엇입니까? – jMyles