我创建了一个 CRM 应用程序,并使用本地数据库在本地主机上运行代码。所有字段都是可见的,但是当我部署 django 应用程序并使用 Postgre 或 MySQL 时。引线不可见。
`views.py:-
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login, logout
from django.contrib import messages
from .forms import *
from .models import *
from django.contrib.auth.models import Group
from django.contrib.auth.decorators import login_required,user_passes_test
from django.views.decorators.csrf import csrf_exempt
# users_in_group1 = Group.objects.get(name="MARKETING").user_set.all()
# users_in_group2 = Group.objects.get(name="TECHNICAL").user_set.all()
@csrf_exempt
def technicalregister_user(request):
if request.method == 'POST':
form = TechnicalSignUpForm(request.POST)
if form.is_valid():
form.save()
# Authenticate and login
username = form.cleaned_data['username']
password = form.cleaned_data['password1']
user = authenticate(username=username, password=password)
technical_group = Group.objects.get_or_create(name='TECHNICAL')
technical_group[0].user_set.add(user)
login(request, user)
messages.success(request, "You Have Successfully Registered! Welcome!")
return render(request, 'adminhome.html')
else:
form = TechnicalSignUpForm()
return render(request, 'technicalregister.html', {'form':form})
return render(request, 'technicalregister.html', {'form':form})
@csrf_exempt
def register_user(request):
if request.method == 'POST':
form = SignUpForm(request.POST)
if form.is_valid():
form.save()
# Authenticate and login
username = form.cleaned_data['username']
password = form.cleaned_data['password1']
user = authenticate(username=username, password=password)
marketing_group = Group.objects.get_or_create(name='MARKETING')
marketing_group[0].user_set.add(user)
login(request, user)
messages.success(request, "You Have Successfully Registered! Welcome!")
return render(request, 'adminhome.html')
else:
form = SignUpForm()
return render(request, 'register.html', {'form':form})
return render(request, 'register.html', {'form':form})
def is_marketing(user):
return user.groups.filter(name='MARKETING').exists()
def is_technical(user):
return user.groups.filter(name='TECHNICAL').exists()
@csrf_exempt
def home(request):
users_in_group1 = Group.objects.get(name="MARKETING").user_set.all()
users_in_group2 = Group.objects.get(name="TECHNICAL").user_set.all()
#leads = Lead.objects.all()
# Check to see if logging in
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
# Authenticate
user = authenticate(request, username=username, password=password)
if user is not None:
# login(request, user)
# messages.success(request, "you have been logged in")
# return redirect('adminhome')
if user in users_in_group1:
login(request, user)
messages.success(request, "You Have Been Logged In!")
return render(request, 'marketinghome.html')
elif user in users_in_group2:
login(request, user)
messages.success(request, "You Have Been Logged In!")
return render(request, 'technicalhome.html')
else:
login(request, user)
messages.success(request, "You Have Been Logged In!")
return render(request, 'adminhome.html')
else:
messages.success(request, "There Was An Error Logging In, Please Try Again...")
return render(request, 'home.html')
else:
return render(request, 'home.html')
@csrf_exempt
@login_required()
@user_passes_test(is_technical)
def technicalhome(request):
lead = Lead.objects.all()
leads=[]
for l in lead:
if l.status == "CONVERTED" or l.status == "COLD":
leads.append(l)
return render(request, 'technicalhome.html', {'leads':leads})
@csrf_exempt
@login_required()
@user_passes_test(is_marketing)
def marketinghome(request):
leads = Lead.objects.all()
return render(request, 'marketinghome.html', {'leads':leads})
@csrf_exempt
@login_required()
def adminhome(request):
leads = Lead.objects.all()
return render(request, 'adminhome.html', {'leads':leads})
@csrf_exempt
@login_required()
def logout_user(request):
logout(request)
messages.success(request, "You Have Been Logged Out...")
return render(request,'home.html')
@csrf_exempt
@login_required()
def customer_lead(request, pk):
if request.user.is_authenticated:
# Look Up Records
customer_lead = Lead.objects.get(id=pk)
return render(request, 'lead.html', {'customer_lead':customer_lead})
else:
messages.success(request, "You Must Be Logged In To View That Page...")
return render(request, 'home.html')
@csrf_exempt
@login_required()
@user_passes_test(is_technical)
def technical_update_lead(request, pk):
if request.user.is_authenticated:
# Look Up Records
customer_lead = Lead.objects.get(id=pk)
return render(request, 'technical_update_lead.html', {'customer_lead':customer_lead})
else:
messages.success(request, "You Must Be Logged In To View That Page...")
return render(request, 'home.html')
@csrf_exempt
@login_required()
def adminlead(request, pk):
if request.user.is_authenticated:
# Look Up Records
customer_lead = Lead.objects.get(id=pk)
return render(request, 'adminlead.html', {'customer_lead':customer_lead})
else:
messages.success(request, "You Must Be Logged In To View That Page...")
return render(request, 'home.html')
@csrf_exempt
@login_required()
@user_passes_test(is_marketing)
def delete_lead(request, pk):
if request.user.is_authenticated:
delete_it = Lead.objects.get(id=pk)
delete_it.delete()
messages.success(request, "Lead Deleted Successfully...")
return render(request, 'marketinghome.html')
else:
messages.success(request, "You Must Be Logged In To Do That...")
return render(request, 'home.html')
@csrf_exempt
@login_required()
def admin_delete_lead(request, pk):
if request.user.is_authenticated:
delete_it = Lead.objects.get(id=pk)
delete_it.delete()
messages.success(request, "Lead Deleted Successfully...")
return render(request, 'adminhome.html')
else:
messages.success(request, "You Must Be Logged In To Do That...")
return render(request, 'home.html')
@csrf_exempt
@login_required()
@user_passes_test(is_marketing)
def add_lead(request):
form = AddLeadsForm(request.POST)
if request.user.is_authenticated:
if request.method == "POST":
if form.is_valid():
form.save()
messages.success(request, "Lead Added...")
return render(request, 'marketinghome.html')
return render(request, 'add_lead.html', {'form':form})
else:
messages.success(request, "You Must Be Logged In...")
return render(request, 'home.html')
@csrf_exempt
@login_required()
@user_passes_test(is_marketing)
def update_lead(request, pk):
if request.user.is_authenticated:
current_lead = Lead.objects.get(id=pk)
form = AddLeadsForm(request.POST or None, instance=current_lead)
if form.is_valid():
form.save()
messages.success(request, "Lead Has Been Updated!")
return render(request, 'marketinghome.html')
return render(request, 'update_lead.html', {'form':form})
else:
messages.success(request, "You Must Be Logged In...")
return render(request, 'home.html')
@csrf_exempt
@login_required()
@user_passes_test(is_technical)
def technical_lead(request, pk):
if request.user.is_authenticated:
current_lead = Lead.objects.get(id=pk)
form = AddLeadsForm(request.POST or None, instance=current_lead)
if form.is_valid():
form.save()
messages.success(request, "Lead Has Been Updated!")
return render(request, 'technicalhome.html')
return render(request, 'technical_lead.html', {'form':form})
else:
messages.success(request, "You Must Be Logged In...")
return render(request,'home.html')
@csrf_exempt
@login_required()
def admin_update_lead(request, pk):
if request.user.is_authenticated:
current_lead = Lead.objects.get(id=pk)
form = AddLeadsForm(request.POST or None, instance=current_lead)
if form.is_valid():
form.save()
messages.success(request, "Lead Has Been Updated!")
return render(request, 'adminhome.html')
return render(request, 'admin_update_lead.html', {'form':form})
else:
messages.success(request, "You Must Be Logged In...")
return render(request, 'home.html')
marketinghome.html:-
{% extends 'base.html' %}
{% block content %}
{% if user.is_authenticated %}
{% csrf_token %}
<button>
<nav>
<a class="nav-link" href="{% url 'add_lead' %}">Add Lead</a>
</nav>
</button>
<table class="table table-striped table-hover table-bordered">
<thead class="table-dark">
<tr>
<th scope="col">Name</th>
<th scope="col">Email</th>
<th scope="col">Phone</th>
<th scope="col">Address</th>
<th scope="col">City</th>
<th scope="col">State</th>
<th scope="col">Zipcode</th>
<th scope="col">Created At</th>
<th scope="col">Discription</th>
<th scope="col">Status</th>
<th scope="col">Total Payment</th>
<th scope="col">Payment_Status</th>
<th scope="col">ID</th>
</tr>
</thead>
<tbody>
{% if leads %}
{% for lead in leads %}
<tr>
<td>{{ lead.first_name }} {{ lead.last_name }}</td>
<td>{{ lead.email }}</td>
<td>{{ lead.phone }}</td>
<td>{{ lead.address }}</td>
<td>{{ lead.city }}</td>
<td>{{ lead.state }}</td>
<td>{{ lead.zipcode }}</td>
<td>{{ lead.created_at }}</td>
<td>{{ lead.discription }}</td>
<td>{{ lead.status }}</td>
<td>{{ lead.total_payment }}</td>
<td>{{ lead.payment_status }}</td>
<td><a href="{% url 'lead' lead.id %}">{{ lead.id }}</a></td>
</tr>
{% endfor %}
{% endif %}
</tbody>
</table>
{% else %}
<div class="col-md-6 offset-md-3">
<h1>Login</h1>
<br/>
<form method="POST" action="{% url 'home' %}">
{% csrf_token %}
<div class="mb-3">
<input type="text" class="form-control" name="username", placeholder="Username" required> # line 78
</div><br/>
<div class="mb-3">
<input type="password" class="form-control" name="password", placeholder="Password" required> # line 82
</div>
<br/>
<button type="submit" class="btn btn-secondary">Login</button>
</form>
{% endif %}
{% endblock %} # line 93
第 78、82 和 93 行显示“属性值后的意外字符”
要部署 CRM,但数据在管理员、营销或技术帐户中不可见,但在超级管理员中可见。