super(NewsForm, self).__init__(*args, **kwargs) this one shouold be first string in the form constructor..... not at the end.
2012/8/25 Barry Morrison <[email protected]>: > Serge, > Thank you. > #92 is for the crispy form. > > The crispy-form is the actual form, but the form is using a WYSIWYG editor > http://redactorjs.com/ and when I go to browse for an image it calls url > 'photo-uploads' which calls the function 'upload_photos' in the view. > > That view is necessary for redactor.js to get the image(s) from it's API via > json, so I understand why the view creates the object, but doing so, it > creates an empty field in the database. > > I had separated the models, so I had an Article model and an ArticleImage > model, but then redactor.js failed to work (unsure how to create the > relationship in the crispy form or any form for that matter). > > Thanks, > Barry > > > On Fri, Aug 24, 2012 at 3:00 PM, Sergiy Khohlov <[email protected]> wrote: >> >> Hello Barry ! >> I would like to say that your are not novice. now and your code is >> really clear. >> Could you please move string #92 up ? super should be called before >> other field initialization. >> look like your prev activity is stored after init process and those >> data is saved at the save operation. >> try to print form to log after pressing cancel button >> >> thanks , serge >> >> 2012/8/25 Barry Morrison <[email protected]>: >> > For ease of use, let's take the cancel out of the equation perhaps. >> > >> > Url to create a new News Event: >> > ### Create News Article >> > url(r'^account/news/add/$', login_required(CreateView.as_view( >> > model=NewsArticle, >> > form_class=NewsForm, >> > success_url=("/account/news"), >> > template_name="account/news_admin.html")), >> > name="admin-add-news"), >> > >> > >> > Url that gets called when I chose to insert an image into the WYSIWYG >> > editor >> > (and calls 'upload_photos' that has the NewsArticle.objects.create()) >> > >> > ### Redactor.js WYSIWYG Editor >> > ### >> > url(r"^uploads/$", "web_site.News.views.upload_photos", >> > name="upload_photos"), >> > url(r"^recent/$", "web_site.News.views.recent_photos", >> > name="recent_photos"), >> > >> > and the views themselves: >> > >> > @csrf_exempt >> > @require_POST >> > @login_required >> > def upload_photos(request): >> > images = [] >> > for f in request.FILES.getlist("file"): >> > obj = NewsArticle.objects.create(upload=f, is_image=True) >> > >> > images.append({"filelink": obj.upload.url}) >> > return HttpResponse(json.dumps(images), mimetype="application/json") >> > >> > >> > @login_required >> > def recent_photos(request): >> > images = [ >> > {"thumb": obj.upload.url, "image": obj.upload.url} >> > for obj in >> > NewsArticle.objects.filter(is_image=True).order_by("-date_created")[:20] >> > ] >> > return HttpResponse(json.dumps(images), mimetype="application/json") >> > >> > >> > I've tried to set a .save(commit=False) on obj -- that doesn't work. >> > >> > I realize the behavior is call 'upload_photos' and it'll create the >> > object >> > in the database, but on any other event other than submission of the >> > form, I >> > want that object to no longer exist. I guess I want it to ONLY get >> > created >> > upon form submission. >> > >> > >> > >> > On Friday, August 24, 2012 3:01:32 AM UTC-7, Tom Evans wrote: >> >> >> >> On Fri, Aug 24, 2012 at 9:37 AM, Barry Morrison <[email protected]> >> >> wrote: >> >> > Code: http://dpaste.org/az8Nb/ >> >> > Video http://www.youtube.com/watch?v=XFSb044UkPs&feature=youtu.be >> >> > >> >> > so first action, I click + which adds new, hitting cancel, takes me >> >> > back >> >> > to >> >> > the view displaying all the news events >> >> > next action, I hit + again, adds new news event...this time I browse >> >> > for >> >> > an >> >> > image, again, I click cancel, takes me back to the view of all news >> >> > events, >> >> > but you see now an empty news event has been created >> >> > next action, I hit + again, add a new image, hit submit. success_url >> >> > takes >> >> > me go the view of all events, this time it created the form I >> >> > submitted >> >> > and >> >> > created another empty one >> >> > >> >> > The function in views.py "add_news_item" is not set up in the URL, >> >> > but >> >> > it >> >> > does support the cancel on the form action. The video posted is using >> >> > that >> >> > view for the URL. With the 'CreateView' in the URL, canceling the >> >> > form >> >> > will >> >> > create an empty field in the database. >> >> > >> >> > Any help/guidance would be greatly appreciated!! >> >> > >> >> > Thanks! >> >> >> >> I've not watched your video. I also have no idea what crispy forms >> >> are, or what django form attributes are created using that syntax. >> >> However… >> >> >> >> Your model definition allows an empty form to be valid - none of those >> >> fields are required AFAICT. Therefore, submitting an empty form using >> >> the cancel button is being allowed to proceed. Therefore your check on >> >> whether "cancel" was submitted is not working. >> >> >> >> Put some debug here: >> >> >> >> http://dpaste.org/az8Nb/#l28 >> >> >> >> Output what "submit" is, and all values in request.POST. >> >> >> >> Cheers >> >> >> >> Tom >> > >> > -- >> > You received this message because you are subscribed to the Google >> > Groups >> > "Django users" group. >> > To view this discussion on the web visit >> > https://groups.google.com/d/msg/django-users/-/cf1oUHRglAcJ. >> > >> > To post to this group, send email to [email protected]. >> > To unsubscribe from this group, send email to >> > [email protected]. >> > For more options, visit this group at >> > http://groups.google.com/group/django-users?hl=en. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Django users" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/django-users?hl=en. >> > > -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/django-users?hl=en. -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

