Hi all,

I am having an issue dynamically populating form data based on the previous
selected field. In my case I have two models one which contains different
types of memberships associated to different clubs. Then I have another
model which handles registrations for individual clubs.

My problem - when the end-user is ready to sign up the form renders (I
already filter out members based on the club they originally selected) but
I need to filter the price based on the membership selected (foreign key)
of player model.

*Below is my model for the membership types:*

# Model to store clubs available memberships so members can select and
pay on registration page
class ClubMemberships(models.Model):

    club_id = models.ForeignKey(ClubInfo, on_delete=models.CASCADE)
    title = models.CharField(max_length=30, default='')
    price = models.DecimalField(default=0.00, max_digits=6, decimal_places=2)
    description = models.TextField()

    def __str__(self):
        return self.title


*Here is the model for the registration:*

# Model to store player information to be used for membership registration
class Player(models.Model):

    club_id = models.ForeignKey(ClubInfo, on_delete=models.CASCADE)
    membership_title = models.ForeignKey(ClubMemberships,
on_delete=models.CASCADE)
    price = models.DecimalField(max_digits=10, decimal_places=2)
    first_name = models.CharField(max_length=20)
    last_name = models.CharField(max_length=20)
    dob = models.DateField(max_length=8)
    email = models.EmailField(max_length=50)
    phone = models.CharField(max_length=12)
    mobile = models.CharField(max_length=15)
    emergency_contact_name = models.CharField(max_length=40)
    emergency_contact_mobile = models.CharField(max_length=15)
    address1 = models.CharField(max_length=30)
    address2 = models.CharField(max_length=30, default='')
    address3 = models.CharField(max_length=30, default='')
    town = models.CharField(max_length=30)
    county = models.CharField(max_length=30)
    country = models.CharField(max_length=30)

    def __str__(self):
        return "%s %s" % (self.first_name, self.last_name)

*Form for player registration:*

# Form to accept details for members to register
class PlayerRegistrationForm(forms.ModelForm):

    class Meta:
        model = Player
        fields = '__all__'
        labels = {
            'dob': 'Date of Birth'
        }
        widgets = {
            'dob': forms.DateInput(attrs={'id': 'datepicker'})
        }

    def __init__(self, *args, **kwargs):
        super(PlayerRegistrationForm, self).__init__(*args, **kwargs)
        self.fields['club_id'].widget = forms.HiddenInput()

    def load_price(self, request):
        membership = request.GET.get('membership_title')
        title = ClubMemberships.objects.filter(title=membership)
        self.fields['price'].queryset =
ClubMemberships.objects.filter(price=title.price)


The load_price is an example of what I am trying to accomplish but cannot
get it working. I want the form to *check the membership selected* in the
*form* then *filter* the *price of that membership* and *display it in the
form*.

*Here is my form in the browser:*

[image: image.png]

Would really appreciate any help as I cannot incorporate PayPal until I can
correctly display the price.

Thanks

Gavin

-- 
__

Séanadh Ríomhphoist/_

Email Disclaimer__
**

Tá an ríomhphost seo agus 
aon chomhad a sheoltar leis faoi rún agus is lena úsáid ag an seolaí agus 
sin amháin é. Is féidir tuilleadh a léamh anseo. 
<https://www4.dcu.ie/iss/seanadh-riomhphoist.shtml>  
<https://www4.dcu.ie/iss/seanadh-riomhphoist.shtml>*
_

This e-mail and any 
files transmitted with it are confidential and are intended solely for use 
by the addressee. Read more here. 
<https://www4.dcu.ie/iss/email-disclaimer.shtml> _
*_

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAHZR7Jejvn2BrbY21EC_OQp1tFAye%2BvuichJn0k59OXi2R4mpQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to