To solve the given optimization problem, we need to define variables, constraints, and an objective function. Let's break down the problem:

- **Variables**: We have two main decision variables: the number of acres for daikons (D) and the number of acres for fennels (F).
- **Constraints**:
  - Land constraint: The total land used for both crops cannot exceed 300 acres, i.e., D + F ≤ 300.
  - Watering time constraint: Given that daikons require 0.5 hours of watering per acre and fennels require 1.5 hours per acre, with a total of 500 hours available, we have 0.5D + 1.5F ≤ 500.
  - Compost cost constraint: With $70 worth of compost needed for daikons and $50 for fennels per acre, and a budget of $7400, the constraint is 70D + 50F ≤ 7400.
- **Objective Function**: The goal is to maximize revenue. Given that each acre of daikons generates $300 in revenue and each acre of fennels generates $250, the objective function is Maximize: 300D + 250F.

Let's now translate these into Gurobi code in Python:

```python
from gurobipy import *

# Create a model
m = Model("Organic_Farming")

# Define variables
daikons_acres = m.addVar(vtype=GRB.CONTINUOUS, name="Daikons_Acres", lb=0)
fennels_acres = m.addVar(vtype=GRB.CONTINUOUS, name="Fennels_Acres", lb=0)

# Define constraints
m.addConstr(daikons_acres + fennels_acres <= 300, "Land_Constraint")
m.addConstr(0.5*daikons_acres + 1.5*fennels_acres <= 500, "Watering_Time_Constraint")
m.addConstr(70*daikons_acres + 50*fennels_acres <= 7400, "Compost_Cost_Constraint")

# Define objective function
m.setObjective(300*daikons_acres + 250*fennels_acres, GRB.MAXIMIZE)

# Optimize model
m.optimize()

# Print results
for v in m.getVars():
    print(f"{v.varName}: {v.x}")
print(f"Objective: {m.objVal}")

```