Opened 7 days ago

Closed 7 days ago

#35896 closed Bug (invalid)

i'm trying to make a edit option in my farmer profile and all the code i verified twice and trice but still not get it where the concret field kinda error occur

Reported by: Arif Hussain Owned by:
Component: Uncategorized Version: 5.0
Severity: Normal Keywords:
Cc: Arif Hussain Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

AttributeError at /update-farmerForm/0e922a2a-6dac-4472-bb5e-6af12f5f9e2a/
'ModelFormOptions' object has no attribute 'concrete_fields'
Request Method: POST
Request URL: http://127.0.0.1:982/update-farmerForm/0e922a2a-6dac-4472-bb5e-6af12f5f9e2a/
Django Version: 5.1.3
Exception Type: AttributeError
Exception Value:
'ModelFormOptions' object has no attribute 'concrete_fields'
Exception Location: C:\ARIF\programms\MINI_PROJECT\DBMS_project\Project_env\Lib\site-packages\django\forms\models.py, line 112, in model_to_dict
Raised during: Base.views.Update_Framer_Form
Python Executable: C:\ARIF\programms\MINI_PROJECT\DBMS_project\Project_env\Scripts\python.exe
Python Version: 3.12.4
Python Path:
['C:
ARIF
programms
MINI_PROJECT
DBMS_project
Sustainable_-Farming-_Resource-Management
SRF',

'C:
Program Files (x86)
CambridgeSoft
ChemOffice2015
ChemScript
Lib',
'C:
Users
HP
AppData
Local
Programs
Python
Python312
python312.zip',
'C:
Users
HP
AppData
Local
Programs
Python
Python312
DLLs',
'C:
Users
HP
AppData
Local
Programs
Python
Python312
Lib',
'C:
Users
HP
AppData
Local
Programs
Python
Python312',
'C:
ARIF
programms
MINI_PROJECT
DBMS_project
Project_env',
'C:
ARIF
programms
MINI_PROJECT
DBMS_project
Project_env
Lib
site-packages']

Server time: Thu, 07 Nov 2024 18:58:18 +0000

My model

# Create Farmer
class Farmer(models.Model):

farmer_id=models.UUIDField(primary_key=True,default=uuid.uuid4, editable=False)
name=models.CharField( max_length=100,null=False ,blank=False)
contact=models.CharField(max_length=15)
profile_picture=models.ImageField(upload_to="farmers/",blank=True ,null=True)

# for traking the performance of farmer
performance=models.DecimalField(max_digits=5, decimal_places=2)

# Many to many relationship with farmers and farm
farms = models.ManyToManyField('Farm', related_name='farmers', blank=True)


def farm_count(self):

return self.farms.count()


def total_yield(self):

return sum(crop.yield_amount for farm in self.farms.all() for crop in farm.crops.all())


def str(self):

return f'Name: {self.name}'

model form
class FarmerForm(forms.ModelForm):

class Meta:

model = Farmer
fields = ['name', 'contact', 'profile_picture', 'performance', 'farms']
widgets = {

'name': forms.TextInput(attrs={'class': 'form-control'}),
'contact': forms.TextInput(attrs={'class': 'form-control'}),
'profile_picture': forms.ClearableFileInput(attrs={'class': 'form-control'}),
'performance': forms.NumberInput(attrs={'class': 'form-control'}),
'farms': forms.SelectMultiple(attrs={'class': 'form-control'}),

}

model view

def Update_Framer_Form(request,id):

farmer=get_object_or_404(Farmer,id=farmer.farmer_id)
form=FarmerForm(instance=farmer)
if request.method=="POST":

form=FarmerForm(request.POST,instance=form)
if form.is_valid():

form.save()
return redirect('farmer_list')

context={

'form':form,

}
return render(request,"Base/farmForm.html",context=context)

html code

{% extends "main.html" %}

{% block content %}
<div class="container mt-5">

<div class="row">

<div class="col-md-8">

<!-- Farmer Information -->
<h2>{{ farmer.name }}'s Profile</h2>
<p><strong>Contact:</strong> {{ farmer.contact }}</p>
<p><strong>Total Farms:</strong> {{ farms.count }}</p>
<p><strong>Total Yield:</strong> {{ total_yield }} kg</p>
<button ><a href="{%url 'update-farmerForm' farmer.farmer_id%}">Edit Profile</a></button>


<!-- Farm List -->
<h3 class="mt-4">Farms</h3>
<table class="table table-bordered mt-3">

<thead class="table-light">

<tr>

<th>Farm Name</th>
<th>Location</th>
<th>Soil Type</th>
<th>Total Crops</th>

</tr>

</thead>
<tbody>

{% for farm in farms %}
<tr>

<td>{{ farm.name }}</td>
<td>{{ farm.location }}</td>
<td>{{ farm.soil_type }}</td>
<td>{{ farm.crops.count }}</td>

</tr>
{% empty %}
<tr>

<td colspan="4">No farms available.</td>

</tr>
{% endfor %}

</tbody>

</table>

</div>
<!-- Profile Image Section -->
<div class="col-md-4 text-center">

<img src="{{ farmer.profile_image_url|default:'default-image.jpg' }}" alt="Profile Picture" class="img-fluid rounded-circle mt-3" style="max-width: 200px;">
<p class="mt-3"><strong>{{ farmer.name }}</strong></p>

</div>

</div>

</div>

<!-- Edit Profile Modal -->
<div class="modal fade" id="editProfileModal" tabindex="-1" aria-labelledby="editProfileModalLabel" aria-hidden="true">

<div class="modal-dialog">

<div class="modal-content">

<div class="modal-header">

<h5 class="modal-title" id="editProfileModalLabel">Edit Profile</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>

</div>
<div class="modal-body">

<form id="editProfileForm">

<div class="mb-3">

<label for="farmerName" class="form-label">Name</label>
<input type="text" class="form-control" id="farmerName" value="{{ farmer.name }}" required>

</div>
<div class="mb-3">

<label for="farmerContact" class="form-label">Contact</label>
<input type="tel" class="form-control" id="farmerContact" value="{{ farmer.contact }}" required>

</div>
<div class="mb-3">

<label for="profilePic" class="form-label">Profile Picture URL</label>
<input type="url" class="form-control" id="profilePic" value="{{ farmer.profile_image_url|default: }}" required>

</div>

</form>

</div>
<div class="modal-footer">

<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary" onclick="updateProfile()">Save Changes</button>

</div>

</div>

</div>

</div>

<!-- Bootstrap JS and dependencies -->
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.6/dist/umd/popper.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.min.js"></script>

<!-- JavaScript for modal functionality -->
<script>

function updateProfile() {

Function to update farmer profile
alert('Profile updated successfully!');
$('#editProfileModal').modal('hide');

}

</script>
{% endblock %}

Change History (1)

comment:1 by Claude Paroz, 7 days ago

Resolution: invalid
Status: newclosed

Hi Arif Hussein, I'm sorry for your issue, but this is the ticket tracker for Django development, not a support channel. Please read wiki:TicketClosingReasons/UseSupportChannels

Note: See TracTickets for help on using tickets.
Back to Top