Search Results

Search found 4 results on 1 pages for 'vorpyg'.

Page 1/1 | 1 

  • Inline editing of ManyToMany relation in Django

    - by vorpyg
    After working through the Django tutorial I'm now trying to build a very simple invoicing application. I want to add several Products to an Invoice, and to specify the quantity of each product in the Invoice form in the Django admin. Now I've to create a new Product object if I've got different quantites of the same Product. Right now my models look like this (Company and Customer models left out): class Product(models.Model): description = models.TextField() quantity = models.IntegerField() price = models.DecimalField(max_digits=10,decimal_places=2) tax = models.ForeignKey(Tax) class Invoice(models.Model): company = models.ForeignKey(Company) customer = models.ForeignKey(Customer) products = models.ManyToManyField(Product) invoice_no = models.IntegerField() invoice_date = models.DateField(auto_now=True) due_date = models.DateField(default=datetime.date.today() + datetime.timedelta(days=14)) I guess the quantity should be left out of the Product model, but how can I make a field for it in the Invoice model?

    Read the article

  • Building a formset dynamically

    - by vorpyg
    I initially wrote code to build a form dynamically, based on data from the DB, similar to what I described in my previous SO post. As SO user Daniel Roseman points out, he would use a formset for this, and now I've come to the realization that he must be completely right. :) My approach works, basically, but I can't seem to get validation across the entire form to be working properly (I believe it's possible, but it's getting quite complex, and there has to be a smarter way of doing it = Formsets!). So now my question is: How can I build a formset dynamically? Not in an AJAX way, I want each form's label to be populated with an FK value (team) from the DB. As I have a need for passing parameters to the form, I've used this technique from a previous SO post. With the former approach, my view code is (form code in previous link): def render_form(request): teams = Team.objects.filter(game=game) form_collection = [] for team in teams: f = SuggestionForm(request.POST or None, team=team, user=request.user) form_collection.append(f) Now I want to do something like: def render_form(request): teams = Team.objects.filter(game=game) from django.utils.functional import curry from django.forms.formsets import formset_factory formset = formset_factory(SuggestionForm) for team in teams: formset.form.append(staticmethod(curry(SuggestionForm, request.POST or None, team=team, user=request.user))) But the append bit doesn't work. What's the proper way of doing this? Thanks!

    Read the article

  • Render multiple Form instances

    - by vorpyg
    I have a simple application where users are supposed to bet on outcome of a match. A match consists of two teams, a result and a stake. Matches with teams are created in the Django admin, and participants are to fill in result and stake. The form must be generated dynamically, based on the matches in the database. My idea is to have one (Django) Form instance for each match and pass these instances to the template. It works fine when I do it from django shell, but the instances aren't rendered when I load my view. The form looks like this: class SuggestionForm(forms.Form): def __init__(self, *args, **kwargs): try: match = kwargs.pop('match') except KeyError: pass super(SuggestionForm, self).__init__(*args, **kwargs) label = match self.fields['result'] = forms.ChoiceField(label=label, required=True, choices=CHOICES, widget=forms.RadioSelect()) self.fields['stake'] = forms.IntegerField(label='', required=True, max_value=50, min_value=10, initial=10) My (preliminary) view looks like this: def suggestion_form(request): matches = Match.objects.all() form_collection = {} for match in matches: f = SuggestionForm(request.POST or None, match=match) form_collection['match_%s' % match.id] = f return render_to_response('app/suggestion_form.html', { 'forms': form_collection, }, context_instance = RequestContext(request) ) My initial thought was that I could pass the form_collection to the template and the loop throught the collection like this, but id does not work: {% for form in forms %} {% for field in form %} {{ field }} {% endfor %} {% endfor %} (The output is actually the dict keys with added spaces in between each letter - I've no idea why…) It works if I only pass one Form instance to the template and only runs the inner loop. Suggestions are greatly appreciated.

    Read the article

  • FastCGI has to be restarted for new content to be displayed on my Django site

    - by vorpyg
    I'm currently testing serving my Django site with Nginx, FastCGI and Flup. The server is configured roughly as described in the Django Advent article. I had to do some minor modifications in order to make it work in Ubuntu 9.10. The problem is that when I add new content it doesn't show up on the page before I restart the FastCGI process. I haven't enabled any caching functionality in Django, and when I query the DB from the Django shell it works as expected. Anybody got ideas to what's causing this?

    Read the article

1