How to Manage User & Create a Model

34 views
Skip to first unread message

Aakash Bhaikatti

unread,
Aug 24, 2022, 9:53:01 AM8/24/22
to Django users

As a User

  • I can signup either as LIBRARIAN and MEMBER using username and password
  • I can login using username/password and get JWT access token

As a Librarian

  • I can add, update, and remove Books from the system
  • I can add, update, view, and remove Member from the system

As a Member

  • I can view, borrow, and return available Books
  • Once a book is borrowed, its status will change to BORROWED
  • Once a book is returned, its status will change to AVAILABLE
  • I can delete my own account

As i'm a newbie. Can anyone Please help in how can I create the models of these. Thank you


ahmed doudou

unread,
Aug 24, 2022, 9:59:57 AM8/24/22
to django...@googlegroups.com
https://docs.djangoproject.com/en/4.1/topics/auth/customizing/


 read this documentation to the end it's gonna solve your problem 

Ahmed °•°

--
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...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/e1616bb0-8b07-46be-a6bb-a3ed3f181d79n%40googlegroups.com.

Ryan Nowakowski

unread,
Aug 25, 2022, 11:11:51 PM8/25/22
to Django users
On Wed, Aug 24, 2022 at 12:48:26AM -0700, Aakash Bhaikatti wrote:
> As a User
>
> - I can signup either as LIBRARIAN and MEMBER using username and password
> - I can login using username/password and get JWT access token
>
> As a Librarian
>
> - I can add, update, and remove Books from the system
> - I can add, update, view, and remove Member from the system
>
> As a Member
>
> - I can view, borrow, and return available Books
> - Once a book is borrowed, its status will change to BORROWED
> - Once a book is returned, its status will change to AVAILABLE
> - I can delete my own account
>
> As i'm a newbie. Can anyone Please help in how can I create the models of
> these. Thank you

You can use the Django User model[1] since it already has username and
password. To distinguish between librarian and member you can create
librarian and member groups using Django's Group model[2].

Then for the book, you can do something like:

class Book(models.Model):

STATUS_CHOICES = [
('BORROWED', 'Borrowed'),
('AVAILABLE', 'Available'),
]

title = models.CharField(max_length=200)
status = models.CharField(max_length=20, choices=STATUS_CHOICES, default='AVAILABLE')
borrower = models.ForeignKey(User, null=True, blank=True)

class Meta:
permissions = [
('borrow_book', 'Can borrow a book'),
('return_book', 'Can return a book'),
]

def __str__(self):
return self.title


You'll add the following permissions[3] to the member group assuming
your Django app is called "library":

* library.view_book
* library.borrow_book
* library.return_book

You can create these permissions[4] for member:

* library.view_member
* library.add_member
* library.update_member
* library.delete_member

You can then add permissions to the librarian group:

* library.view_member
* library.add_member
* library.update_member
* library.delete_member
* library.add_book
* library.update_book
* library.delete_book


You can use the permission_required[5] decorator around your view
functions to control access.


[1] https://docs.djangoproject.com/en/4.1/ref/contrib/auth/#user-model
[2] https://docs.djangoproject.com/en/4.1/ref/contrib/auth/#group-model
[3] https://docs.djangoproject.com/en/4.1/topics/auth/default/#default-permissions
[4] https://docs.djangoproject.com/en/4.1/topics/auth/default/#programmatically-creating-permissions
[5] https://docs.djangoproject.com/en/4.1/topics/auth/default/#the-permission-required-decorator
Reply all
Reply to author
Forward
0 new messages