Как добавить разрешения на просмотр в Django 1.9 - PullRequest
0 голосов
/ 20 сентября 2019

Я использую Django 1.9, и мне нужно добавить разрешение для пользователя, чтобы иметь возможность только просматривать данные в панели администратора.В настоящее время моими единственными опциями являются добавление, изменение и удаление.Мне не нужно это применять ко всем пользователям.В идеале мне бы хотелось, чтобы он мог назначать пользователю (или группе) права на просмотр, например, как в Django 2.2

Кто-нибудь знает, как мне это сделать?

Я действительно не знаю, что попробовать.

1 Ответ

0 голосов
/ 20 сентября 2019

Я работал над аналогичным проектом, и вот как это можно сделать

в Views.py

from django.shortcuts import *
from .models import *
from .forms import * 

   def viewstudents(request):
     all_info = DataStudent.objects.all()
     context={'all_info' :all_info}
     return render(request, 'accounts/Students/viewstudents.html', context)

в ваших URL.py

from django.urls import path
from django.conf.urls import url, include
from . import views

urlpatterns=[
url(r'^viewstudents', views.viewstudents, name="viewstudents")
]

в вашем viewstudents.html

{% extends 'base.html' %}
    {% block body %}
    <div class="container" style="margin-left: 200px;font-size: 20px; padding: 0px 10px;">
      <br><h4>Manage Students</h4>

      <nav class="nav navbar-expand" style="float:left">
        <ul class="navbar-nav mr-auto">
          <li class="nav-item">
            <a class="nav-link" href="#"><button class="btn btn-default">List of Students</button></a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="{% url 'addstudent' %}"><button class="btn btn-success">Add Students</button></a>
          </li>
        </ul>
      </nav>
    <br>
    <div class="container" style="margin-left:2px; font-size:15px; padding:3px">
    <table class="table table-hover" border="2">
       <thead class="table-success">
        <tr>
             <td>id</td>
             <td>Photo</td>
             <td>Name</td>
             <td>Class</td>
             <td>Stream</td>
             <td>Admision No</td>
             <td>Action</td>
         </tr>
       </thead>
       <tbody>
         {% if all_info %}
         {% for item in all_info %}
         <tr>
           <td>{{ item.id}}</td>
           <td>{% if item.Student_Photo %}<img src="{{ item.Student_Photo.url}}" width="50">{% endif %}</td>
           <td>{{ item.name}}</td>
           <td>{{ item.Class}}</td>
           <td>{{ item.stream}}</td>
           <td>{{ item.admission_no}}</td>
           <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
           <td><a class="btn btn-primary a-btn-slide-text" href="{% url 'singlestudentdetails' pk=item.id  %}"><span class="glyphicon glyphicon-eye-open" aria-hidden="true"></span>
          <span><strong>View</strong></span></a>
          <form id='delete-student' method="POST" action="{% url 'deletestudent'  pk=item.id %}">
            {% csrf_token %}
             <a class="btn btn-danger a-btn-slide-text" href="{% url 'deletestudent' pk=item.id %}"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span>
            <span><strong>Delete</strong></span> </a>
            </form>
           </td>
            {% endfor %}
         </tr>
         {% endif %}
       </tbody>
    </table>
    </div>
    </div>
      <script type="text/javascript">
        window.mytest = function()
         {
           var isValid = confirm('Are you sure ?');
           if (!isValid) { event.preventDefault();
              alert("It wont delete. Yay!");}}
            </script>

    {% endblock %}

и вот мой model.py

  from django.db import models
    from django.utils import timezone
    from datetime import datetime

     class DataStudent(models.Model):
        sex = (('female','female'), ('male','male'))
        reli = (('moslem','moslem'), ('Christian','Christian'),('Others','Others'))
        relation = (('Brother','Brother'), ('Sister','Sister'),('Mother','Mother'),
        ('Father','Father'), ('Uncle','Uncle'),('Auntie','Auntie'))
        school = models.ForeignKey(School, on_delete=models.PROTECT, blank=True, null=True)
        religion = models.CharField(max_length=130, choices=reli, blank=False)
        name = models.CharField(max_length=100, default="Student_name")
        username = models.CharField(max_length=100)
        gender = models.CharField(max_length=130, choices=sex, blank=False)
        Class = models.ForeignKey(Classinformation, on_delete=models.PROTECT, blank=True, null=True)
        stream = models.ForeignKey(Sectioninformation, on_delete=models.PROTECT, blank=True, null=True)
        admission_no = models.CharField(max_length=130)
        def __str__(self):
           return self.name

Счастливое кодирование, мой приятель, разработчик

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...