Giter Site home page Giter Site logo

Comments (6)

kevwilde avatar kevwilde commented on August 22, 2024

Hi there @eduardo-matos, Currently you can manually create a UserPlan by first creating a new User in the admin and then edit his UserPlan which is automatically created after user-creation. Is this what you were looking for?

As an aside: in order for this to work, you need at one plan marked as "default" plan. That way, all created users will immediately be assigned this plan after creation.

from django-plans.

eduardo-matos avatar eduardo-matos commented on August 22, 2024

I have some users that were created before including the django-plans app. The only way I can associate these users with an userplan is by editing via shell, which I was trying to avoid.

My idea was to create a new userplan manually (via admin page), choosing an existing user in the "create userplan" page. Since the "user" field is omitted, There is no way to do that.

from django-plans.

maxpaynestory avatar maxpaynestory commented on August 22, 2024

A quick fix is to override UserPlan inside your admin

from plans.models import UserPlan
from plans.admin import UserPlanAdmin

class UserPlanMyAdmin(UserPlanAdmin):
    fields = ('user', 'plan', 'expire', 'active')

admin.site.unregister(UserPlan)
admin.site.register(UserPlan,UserPlanMyAdmin)

from django-plans.

Alir3z4 avatar Alir3z4 commented on August 22, 2024

Having user editable/writeable on the admin has one annoying con as well, which is when there are many users and simply loading them in a "select" html widget will cause load, especially when there are many users in the database.

If Django admin had a default feature to have a search-friendly select box for related field it would be much easier.

To learn more about this problem you may have a look at https://stackoverflow.com/questions/14912872/django-admin-dropdown-of-1000s-of-users.

To solve such issue there are:

My vote for the second option which is using raw_id_fields in admin panel.
Which gives something like:

image

The solution provided by @maxpaynestory is also an hack that can be done as well, but still will have the same problem that I described.

I am open for any suggestion here and would love to discuss it.

from django-plans.

PetrDlouhy avatar PetrDlouhy commented on August 22, 2024

For the problem with users created prior introducing django-plans, I would recommend introducing adminaction to the sources. The code might be pretty simple:

for user in UserProfile.objects.filter(userplan=None):
     UserPlan.objects.create(user=user, plan=Plan.objects.get(default=True))

Although there might be other cases, when the manual editation of UserPlans would be needed.

from django-plans.

bezkos avatar bezkos commented on August 22, 2024

An complete fix here is to use @maxpaynestory solution with Django 2+ autocomplete.

class UserPlanMyAdmin(UserPlanAdmin):
    fields = ('user', 'plan', 'expire', 'active')
    autocomplete_fields = ['user', 'plan']

from django-plans.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.