I'm probably missing something simple, but I can't get my info to display 
from my database.

I have 2 abstract models to make 1 normal model.
My url views aren't giving me errors, the web browser finds them.
My variables aren't correct(I can only assume).

Thanks!

-- 
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+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/969bead1-4344-4292-a2bc-ef009ea751c9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
from django.db import models
# @property"""read-only"""
# def function(self):
# "description"
# return 

"""Person's Name"""
class Name(models.Model):
	first_name = models.CharField(
		"First Name",#verbose_name
		max_length=20,
		help_text='First Name',
		)
	middle_name = models.CharField(
		"Middle Name or Initial",#verbose_name
		max_length=20,
		blank=True,
		default='',
		help_text='Middle Name or Initial',
		)
	last_name = models.CharField(
		"Last Name",#verbose_name
		max_length=30,
		blank=True,
		default='',
		help_text='Last Name',
		)
		
	@property
	def full_name(self):
		"""Full Name"""
		return '%s %s' % (
			self.first_name,
			self.last_name)
	
	@property
	def full_name_mi(self):
		"""Full Name w/MI"""
		# Pulls only the first letter of a middle_name
		if len(self.middle_name) > 0:
			mi = self.middle_name[0:]
			return '%s %s %s' % (
				self.first_name,
				mi, self.last_name)
		else:
			return '%s %s' % (
				self.first_name,
				self.last_name)
	
	@property
	def full_name_m_name(self):
		"""Full Name w/Middle Name"""
		if len(self.middle_name) > 0:
			return '%s %s %s' % (
				self.first_name,
				self.middle_name,
				self.last_name)
		else:
			return '%s %s' % (
				self.first_name,
				self.last_name)
	
	class Meta:
		abstract = True
		ordering = ['last_name', 'first_name', 'middle_name']
from django.db import models
# @property"""read-only"""
# def function(self):
# "description"
# return

"""Phone Number"""
# phone_type choices
NONE ='NO'
HOMEPHONE = 'HP'
MOBILEPHONE = 'MP'
WORKPHONE = 'WP'
WORKCELL = 'WC'
PHONE_TYPE_CHOICES = (
	(NONE, 'Select'),
	(HOMEPHONE, 'Home'),
	(MOBILEPHONE, 'Mobile'),
	(WORKPHONE, 'Work'),
	(WORKCELL, 'Work Cell'),
)

# Set default country code for PhoneNumber
default_country_code = '1'

class PhoneNumber(models.Model):
	phone_type = models.CharField(
		"Type",#verbose_name
		max_length=2,
		choices=PHONE_TYPE_CHOICES,
		default=NONE,
		help_text='Type of number',
		)
	international = models.CharField(
		"International",#verbose_name
		max_length=7,
		default=default_country_code,
		help_text='Country Code',
		)
	number = models.CharField(
		"Number",#verbose_name
		max_length=10,
		help_text='10 Digit Number',
		)
	extension = models.CharField(
		"ext.",#verbose_name
		max_length=6,
		blank=True,
		null=True,
		help_text='Extension',
		)
	text = models.BooleanField(
		"Text",#verbose_name
		default=False,
		help_text='Send and Receive Text Messages',
		)
	smartphone = models.BooleanField(
		"Smartphone",#verbose_name
		default=False,
		help_text='View Apps and Web Pages',
		)
	
	@property
	def full_number(self):
		"""Displays number with counrty code if outside the default country; does not show extension if none is given"""
		country_code = ''
		complete_number = '%s.%s.%s' % (
					self.number[0::3],
					self.number[3::3],
					self.number[6::4])
		ext = ''
		
		if self.international != default_country_code:
			contry_code = '(%s) ' % (self.international)
			return country_code
		else:
			return country_code
		
		if len(self.extension) > 0:
			ext = ' ext.%s' % (self.extension)
			return ext
		else:
			return ext
			
		return '%s%s%s' % (country_code, complete_number, ext)
	
	class Meta:
		abstract = True
from django.db import models
from django.urls import reverse

from .name import Name
from .phone import PhoneNumber
# @property
# def function(self):
# "description"
# return

# Create your models here.
class PhoneBook(Name, PhoneNumber):
	entry = models.AutoField(
		"Entry", #verbose_name
		primary_key=True,
		)
	def __str__(self):
		return self.full_name_m_name
		
	def get_absolute_url(self):
		return reverse('phone.views.phonebook_entry', args=[str(self.entry)])
	
"""	def QuerySet(self): #set up in postgresql smart search
		phone_book.filter(number__contains:search_text)
		phone_book.filter(full_name__icontains:search_text)
		"""
from django.shortcuts import render, get_object_or_404, redirect

from .forms import PhoneBookEntryForm
from .models import PhoneBook

# Create your views here.
def contacts(request):
	contact_list = PhoneBook.objects.all()
	return render(request, 'phonebook.html', {'contact_list': contact_list})

def contact_create(request):
	if request.method == "POST":
		form = PhoneBookEntryForm(request.POST)
		if form.is_valid():
			new_form = form.save(commit=False)
			new_form.save()
			return redirect('detail', entry=new_form.entry)
	
	else:
		form = PhoneBookEntryForm()
		return render(request, 'contact_create.html', {'form': form})

def contact_detail(request, entry):
	contact = get_object_or_404(PhoneBook, entry=entry)
	return render(request, 'contact_detail.html', {'entry': entry})

def contact_update(request, entry):
	contact = get_object_or_404(PhoneBook, entry=entry)
	
	if request.method == "POST":
		form = PhoneBookEntryForm(instance=contact)
		if form.is_valid():
			form.save()
			return redirect('detail', entry=form.entry)
	
	else:
		form = PhoneBookEntryForm()
		return render(request, '.html', {'form': form})
	return render(request, '.html', {'form': form})
{{ entry.full_name_mi }}{{ entry.full_number }}

Reply via email to