기술적 인 질문이 적어 "올바른 방법으로이 일을하고 있습니까"라는 질문이 더 많습니다.Django 게시물 및 응답
내가 가진 여러 모델
을 정의 나는 JQuery와 및 많은 HTML 페이지가 그들을 채우기 위해, 그래서 그들은 단순히 인해 작업의 성격에 HTML 양식을 통해 채울 수 없습니다
class Style(models.Model):
tag_xml = models.TextField()
image = models.ImageField(upload_to="styles")
user = models.ForeignKey(User)
uploaded = models.DateField()
class StyleMatch(models.Model):
style = models.ForeignKey(Style)
item = models.ForeignKey(FashionItem)
이벤트 함수 및 기타 자바 스크립트. 저장 버튼 내가 아약스를 (전화 클릭)하고 수집 된 모든 변수를 전달할 때
var saveRequest= $.ajax({
url: "/save_style/",
type: "POST",
data: "selection="+s+"&user="+user+"&src="+image_src,
dataType: "text"
});
내 save_style보기 다음 모델로 값을 저장
def save_style(request):
if request.method == 'POST':
selection = request.POST['selection'].rsplit("|")
user = request.POST['user']
src = request.POST['src']
f = open(MEDIA_ROOT+src)
image_file = File(f)
u = User.objects.get(id=user)
style = Style(tag_xml = "",
image = image_file,
user = u,
uploaded = date.today())
style.save()
for s in selection:
if (s != ''):
match = FashionItem.objects.get(id=s)
styleMatch = StyleMatch(style = style,
item = match)
styleMatch.save()
i = StyleMatch.objects.filter(style=style)
items = FashionItem.objects.filter(id__in=i)
return render_to_response('style_saved.html', dict(image=src, items=items, media_url = MEDIA_URL), context_instance=RequestContext(request))
이 일 후에 내가 정말 원하는 성공 페이지로 이동하여 방금 모델에 추가 한 레코드를 표시합니다. 그러나 render_to_response
을 사용하고 자바 스크립트에서 전체 페이지를 다시 작성해야하는 모델 정보를 다시 전달하면 새 템플릿으로 리디렉션하는 것이 좋습니다. 나는 HttpResponseRedirect
을 사용합니다. a) 나는 값을 되돌릴 수 없으며, b) 꽤 리디렉션되는 것처럼 보이지 않습니다. (becau 그 게시물은 내 자바 스크립트에서 유래하고있다).
그래서 결국 내 질문에
- 이 내가이 일을하는 방법을 정말? django 문서는 이 실제로 약간 더 복잡한 영역을 커버하는 것처럼 보이지 않으므로 약간의 확신이 없습니다.
- render_to_response 또는 위의 HttpResponseRedirect를 사용해야합니까? 또는 아마도 제 3의 옵션에 대해서는 모른다. .
의견을 보내주십시오.
참고 위의 코드는 이상적이지 않습니다. 유효성 검사, 주석 등이 없습니다. 간단히 데모 목적으로 제공되었습니다. 그러나 심각한 문제를 지적 해 주시기 바랍니다.
영업 사원은 HTML 양식을 사용하여 모델 개체를 만드는 것은 적절하지 않으므로 ModelForm을 많이 사용하지 않을 것이라고 말했습니다. – patrickn
내가하고있는 일은 자연스럽게 형태, 이미지 태그 지정 및 동적으로 작성된 결과의 사용자 선택에 적합하지 않습니다. 어쩌면 양식을 사용해야 할 수도 있지만 텍스트 상자 나 라디오 단추 안에 잘 들어 있지 않은 데이터의 경우 어떻게해야하는지 모르겠습니다. 제안 해 주셔서 감사합니다. – debugoz