Sunday, February 28, 2010

Re: to_field connected to field in UserProfile

I don't see much reason to keep Payment method separate from the Orders class then. For each order, you can have a different payment method, so just make a payment method column in the Orders model. Like this:

payment_method_choices = (
    ('$$', 'Cash'),
    ('cc', 'Credit Card'),
)

class Order(models.Model):

    id = models.ForeignKey(CustomerProfile)
    payment_method = models.CharField(max_length=32, choices = payment_method_choices)

By including specific choices the drop-down menu will get rendered automatically by the form (at least on the admin screen...you'll need to do it yourself in your templates as a drop down menu).

At least, this is what I think I would do.

-Tim


On Sat, Feb 27, 2010 at 5:17 AM, django_is <festival.star@googlemail.com> wrote:
Yeah I understand that. But it makes no sense to link the payment
field in my Orders model to the CustomerProfile.
In the end I want to save one payment method from the methods that are
available for one specific user in my record for one order. I'm just
confused on how to achieve that. From a user perspective I'd like to
get a dropdown when adding one order in the backend which allows me to
select one payment method from the methods that got added to the one
specific user. (the same applies to a form field for the frontend)

It would be awesome if you could help me in that point. Thank you very
much!

On Feb 24, 7:10 pm, Timothy Kinney <timothyjkin...@gmail.com> wrote:
> When you include the to_field, it tells Django that you want the foreignkey
> to be the to_field on the CustomerProfile. It then looks for a field called
> payment_id (following the foreignKey relationship). This is normal.
>
> If you remove the to_field, it will choose the primary key of
> CustomerProfile which is probably an AutoField. Then it will look for
> CustomerProfile_id which is a field that DOES exist.
>
> The point of the ForeignKey option is to link one model to another one *via
> the primary key*. You don't link to a random field in the model, you always
> link to the primary key.
>
> Does that make sense?
>
> -Tim
>
> On Tue, Feb 23, 2010 at 11:23 AM, django_is <festival.s...@googlemail.com>wrote:
>
> > Thank you for your response. But how would the Orders model field for
> > payment look like?
>
> > Should it look like that:
>
> > payment = models.ForeignKey(CustomerProfile,
> > related_name="order_customer_payment",verbose_name='Zahlungsart')
>
> > I don't understand how that should work. At the moment I am quite
> > confused about what you mean.
>
> > Regards
>
> > On 23 Feb., 16:00, Daniel Roseman <dan...@roseman.org.uk> wrote:
> > > On Feb 23, 11:56 am, django_is <festival.s...@googlemail.com> wrote:
>
> > > > Hmm ok. Assuming the use case above what would be the correct way to
> > > > solve this problem? Especially to have the possibility to have one
> > > > field in the Orders table that allows me to select one payment method
> > > > of the methods which got added to the one specific user. Adding
> > > > payment methods to each user happens in the CustomerProfile with the
> > > > M2M relationship between the CustomerProfile model and the Payment
> > > > model.
>
> > > > Here is the M2M relationship defined in the CustomerProfile:
>
> > > > payment = models.ManyToManyField(Payment, verbose_name='Zahlungsart')
>
> > > > This M2M relationship is working as expected. I just don't know how to
> > > > get the payment methods inside the Orders model.
>
> > > > It would be great if you could help me with this.
>
> > > > Thank you very much.
>
> > > > Regards
>
> > > I don't know how I can make what I said in the previous message it any
> > > clearer: you don't need the to_field.
> > > --
> > > DR.
>
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Django users" group.
> > To post to this group, send email to django-users@googlegroups.com.
> > To unsubscribe from this group, send email to
> > django-users+unsubscribe@googlegroups.com<django-users%2Bunsubscribe@googlegroups.com>
> > .
> > 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 django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
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 django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home


Real Estate